

<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme=&#34;auto&#34;>



<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/resource/img/favicon.png">
  <link rel="icon" type="image/png" href="/resource/img/favicon.png">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  
  <meta name="theme-color" content="#2f4154">
  <meta name="description" content="">
  <meta name="author" content="soldier">
  <meta name="keywords" content="">
  <title>西安神州数码融信软件有限公司 - 黄结的个人博客</title>

  <link  rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.4.1/css/bootstrap.min.css" />


  <link  rel="stylesheet" href="https://cdn.staticfile.org/github-markdown-css/4.0.0/github-markdown.min.css" />
  <link  rel="stylesheet" href="/lib/hint/hint.min.css" />

  
    
    
      
      <link  rel="stylesheet" href="https://cdn.staticfile.org/highlight.js/10.0.0/styles/github-gist.min.css" />
    
  

  


<!-- 主题依赖的图标库，不要自行修改 -->

<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css">



<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_kmeydafke9r.css">


<link  rel="stylesheet" href="/css/main.css" />

<!-- 自定义样式保持在最底部 -->


  <script  src="/js/utils.js" ></script>
  <script  src="/js/color-schema.js" ></script>
<meta name="generator" content="Hexo 5.2.0"></head>


<body>
  <header style="height: 70vh;">
    <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand"
       href="/">&nbsp;<strong>soldier</strong>&nbsp;</a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/">
                <i class="iconfont icon-home-fill"></i>
                首页
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/archives/">
                <i class="iconfont icon-archive-fill"></i>
                归档
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/categories/">
                <i class="iconfont icon-category-fill"></i>
                分类
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/tags/">
                <i class="iconfont icon-tags-fill"></i>
                标签
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <i class="iconfont icon-user-fill"></i>
                关于
              </a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                
                  
                  
                  
                  <a class="dropdown-item" href="/about/">
                    
                    个人简历
                  </a>
                
                  
                  
                  
                  <a class="dropdown-item" target="_blank" rel="noopener" href="https://soldiergit.github.io/honor/">
                    
                    项目及获奖
                  </a>
                
              </div>
            </li>
          
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" data-toggle="modal" data-target="#modalSearch">&nbsp;<i
                class="iconfont icon-search"></i>&nbsp;</a>
          </li>
        
        
          <li class="nav-item" id="color-toggle-btn">
            <a class="nav-link" href="javascript:">&nbsp;<i
                class="iconfont icon-dark" id="color-toggle-icon"></i>&nbsp;</a>
          </li>
        
      </ul>
    </div>
  </div>
</nav>

    <div class="banner intro-2" id="background" parallax=true
         style="background: url('/img/default.png') no-repeat center center;
           background-size: cover;">
      <div class="full-bg-img">
        <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
          <div class="container page-header text-center fade-in-up">
            <span class="h2" id="subtitle">
              
            </span>

            
              <div class="mt-3">
  
  
    <span class="post-meta">
      <i class="iconfont icon-date-fill" aria-hidden="true"></i>
      <time datetime="2020-12-15 08:53" pubdate>
        2020年12月15日 早上
      </time>
    </span>
  
</div>

<div class="mt-1">
  
    
    <span class="post-meta mr-2">
      <i class="iconfont icon-chart"></i>
      20.1k 字
    </span>
  

  
    
    <span class="post-meta mr-2">
      <i class="iconfont icon-clock-fill"></i>
      
      
      218
       分钟
    </span>
  

  
  
</div>

            
          </div>

          
        </div>
      </div>
    </div>
  </header>

  <main>
    
      

<div class="container-fluid">
  <div class="row">
    <div class="d-none d-lg-block col-lg-2"></div>
    <div class="col-lg-8 nopadding-md">
      <div class="container nopadding-md" id="board-ctn">
        <div class="py-5" id="board">
          <article class="post-content mx-auto" id="post">
            <!-- SEO header -->
            <h1 style="display: none">西安神州数码融信软件有限公司</h1>
            
            <div class="markdown-body" id="post-body">
              <h2 id="公司介绍"><a href="#公司介绍" class="headerlink" title="公司介绍"></a>公司介绍</h2><p>张微微 05年 项目经理<br>神州数码控股有限公司<br>母公司：神州数码信息服务股份有限公司 简称：神州信息 关键字：使命、定位、战略 股票代码：000555.SZ<br>神州数码融信软件有限公司 金融SBU部门，百分之九十做的银行<br>在金融、政府、电信</p>
<p>分布式与微服务、前端服务、渠道营销、数据服务、业务处理、融合场景、运维管理、测试服务质量管控、人工智能、大数据、云管理、区块链、物联网、5G<br>拥有3个研发中心、5个交付中心、1个创新中心 5个研发基地：北京、上海、广州、深圳、西安</p>
<h2 id="第一章、Java基础知识"><a href="#第一章、Java基础知识" class="headerlink" title="第一章、Java基础知识"></a>第一章、Java基础知识</h2><h3 id="1-类和对象"><a href="#1-类和对象" class="headerlink" title="1.类和对象"></a>1.类和对象</h3><h4 id="1-类的定义和声明"><a href="#1-类的定义和声明" class="headerlink" title="1)类的定义和声明"></a>1)类的定义和声明</h4><ul>
<li><strong>类的定义：</strong> 基于面向对象思想，现实生活中具有相同特性的对象的抽象就称为类。类由类声明和类体构成，类体又由变量和方法构成。</li>
<li><strong>类的声明：</strong> 访问说明符 class 类名 extends 超类名 implements 接口名</li>
<li><strong>类体：</strong><ul>
<li>成员变量：指类的一些属性。格式：访问说明符号 数据类型 变量名</li>
<li>成员方法：指类创建的对象能做什么</li>
<li>格式：访问说明符 数据类型 方法名（数据类型1 变量名1， 数据类型2 变量2）<ul>
<li>八大基本数据类型：int short float double long boolean chart byte</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 id="2-类的实例化"><a href="#2-类的实例化" class="headerlink" title="2)类的实例化"></a>2)类的实例化</h4><ul>
<li><strong>概念：</strong> 通过一个类创建一个对象，这个过程叫做实例化</li>
<li><strong>举例：</strong> Hero a = new Hero();</li>
</ul>
<h4 id="3-方法的重载"><a href="#3-方法的重载" class="headerlink" title="3)方法的重载"></a>3)方法的重载</h4><ul>
<li><strong>概念：</strong> 存在与同一个类中，指一个方法与已经存在的方法名称相同，但是参数类型、个数、顺序至少有一个不同；但是返回值不同，其它都相同不是重载</li>
<li><strong>作用：</strong> 使用同一个方法名，根据参数的不同，调用不同的方法，实现相似的操作</li>
</ul>
<h4 id="4-类的构造方法"><a href="#4-类的构造方法" class="headerlink" title="4)类的构造方法"></a>4)类的构造方法</h4><ul>
<li><strong>概念：</strong> 方法名和类名一样，包括大小写，没有返回类型的方法</li>
<li><strong>作用：</strong> 实现类的实例化，实例化一个对象的时候，必须调用构造方法</li>
</ul>
<h4 id="5-类的继承"><a href="#5-类的继承" class="headerlink" title="5)类的继承"></a>5)类的继承</h4><ul>
<li><strong>概念：</strong> 继承就是子类继承父类的特征和行为，使得子类对象具有父类的属性和方法</li>
<li><strong>作用：</strong> 子类可以继承父类的全部功能，可以增加新属性、新功能</li>
</ul>
<h4 id="6-方法的重写"><a href="#6-方法的重写" class="headerlink" title="6)方法的重写"></a>6)方法的重写</h4><ul>
<li><strong>概念：</strong> 子类可以继承父类的对象方法，在继承后，重复提供该方法，就叫做方法的重写，又叫覆盖override</li>
<li><strong>作用：</strong> 当父类的方法无法满足要求，需要子类具有特有的功能，就需要方法重写</li>
</ul>
<h4 id="7-方法的隐藏"><a href="#7-方法的隐藏" class="headerlink" title="7)方法的隐藏"></a>7)方法的隐藏</h4><ul>
<li><strong>概念：</strong> 方法的隐藏与重写类似，重写是子类覆盖父类的对象方法，隐藏就是子类覆盖父类的类方法</li>
<li><strong>作用：</strong> 当方法属于类是，子类通过方法的隐藏调用到子类的类方法</li>
</ul>
<h3 id="2-接口"><a href="#2-接口" class="headerlink" title="2.接口"></a>2.接口</h3><h4 id="1-接口的定义和声明"><a href="#1-接口的定义和声明" class="headerlink" title="1)接口的定义和声明"></a>1)接口的定义和声明</h4><ul>
<li><strong>定义：</strong> 接口帮助类扩展方法，接口与类不同在于；<ul>
<li>没有变量的声明，但可以定义变量；</li>
<li>只有方法的声明，没有方法的实现</li>
</ul>
</li>
<li><strong>声明：</strong> public interface 接口名 extends 接口列表</li>
</ul>
<h3 id="3-常用类和数据结构"><a href="#3-常用类和数据结构" class="headerlink" title="3.常用类和数据结构"></a>3.常用类和数据结构</h3><h4 id="1-数组"><a href="#1-数组" class="headerlink" title="1)数组"></a>1)数组</h4><ul>
<li><strong>概念：</strong> 数组是一个固定长度的，包含了相同类型数据的容器</li>
<li><strong>初始化：</strong> <code>int[] arr = new int[5];</code></li>
</ul>
<h4 id="2-Object类"><a href="#2-Object类" class="headerlink" title="2)Object类"></a>2)Object类</h4><ul>
<li><strong>Object类概念：</strong> Object类是所有类的父类，声明一个类的时候，默认是继承了Object类。如<code>public class Hero extends Object &#123;...&#125;</code></li>
<li><strong>toString方法：</strong> 返回当前对象的字符串表达，默认返回对象的类名+内存地址值</li>
<li><strong>equals方法：</strong> 用于判断两个对象的内容是否相同，默认比较的是地址，在实际使用中需要比较两个对象的内容是否一致，所以经常要重写equals方法</li>
</ul>
<h4 id="3-String类"><a href="#3-String类" class="headerlink" title="3)String类"></a>3)String类</h4><ul>
<li>length()方法：返回字符串长度；</li>
<li>trim()方法：返回字符串并删除任何前导和尾随控股；</li>
<li>String构造方法<ul>
<li>String(char[] value)：使用字符数组构造一个字符串；</li>
<li>String(String original):使用原字符串original的拷贝以构造一个新字符串；</li>
</ul>
</li>
<li>indexOf(String str)：返回str第一次出现的位置；</li>
<li>substring(int begin, int end)：返回下标begin到end-1的字符串；</li>
<li>equals(Object obj)：比较字符串的值是否与obj的字符串的相同，应使用常量或确定有值的对象来调用equals方法。</li>
</ul>
<h4 id="4-String、StringBuffer和StringBuilder使用比较"><a href="#4-String、StringBuffer和StringBuilder使用比较" class="headerlink" title="4)String、StringBuffer和StringBuilder使用比较"></a>4)String、StringBuffer和StringBuilder使用比较</h4><table>
<thead>
<tr>
<th align="center">名称</th>
<th align="center">特点</th>
<th align="center">使用场景</th>
</tr>
</thead>
<tbody><tr>
<td align="center">String</td>
<td align="center">①不可变字符序列，String一经初始化后内容不会改变了；<br/>②对String的操作实际上对其副本（原始拷贝）的操作，原本字符串一点都没有改变；<br/>③如果多次执行改变串内容操作，会导致大量副本字符串对象留在内存中，降低效率。</td>
<td align="center">固定的、不经常变化的字符串数据</td>
</tr>
<tr>
<td align="center">StringBuffer</td>
<td align="center">①可变字符序列，线程安全，但是效率低；<br/>②其是对原子符串本身操作，可以对字符串进行修改而不产生副本拷贝；<br/>③append方法用于追加字符串，类似于String的“+”。</td>
<td align="center">多线程环境下，需要经常变化的字符串</td>
</tr>
<tr>
<td align="center">StringBuilder</td>
<td align="center">①可变字符串序列，线程不安全，但是效率高；<br/>②使用方法与StringBuffer类型。</td>
<td align="center">单线程环境下，需要经常变化的字符串</td>
</tr>
</tbody></table>
<h4 id="5-包装类"><a href="#5-包装类" class="headerlink" title="5)包装类"></a>5)包装类</h4><ul>
<li>概念：在面向对象的操作中经常需要将基本数据转为对象，这个基本和基本数据类型对应的类统称为包装类（wrapper class）；</li>
<li>用途：<ul>
<li>作为和基本数据类型对应的类型存在，方便对象的操作和数组转换；</li>
<li>当业务方法的参数是Object时，不能传入基本数据类型，需要使用包装类，包装类型的初始值为null；</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th align="center">基本数据类型</th>
<th align="center">包装类</th>
</tr>
</thead>
<tbody><tr>
<td align="center">byte</td>
<td align="center">Byte</td>
</tr>
<tr>
<td align="center">boolean</td>
<td align="center">Boolean</td>
</tr>
<tr>
<td align="center">char</td>
<td align="center">Character</td>
</tr>
<tr>
<td align="center">short</td>
<td align="center">Short</td>
</tr>
<tr>
<td align="center">int</td>
<td align="center">Integer</td>
</tr>
<tr>
<td align="center">long</td>
<td align="center">Long</td>
</tr>
<tr>
<td align="center">float</td>
<td align="center">Float</td>
</tr>
<tr>
<td align="center">double</td>
<td align="center">Double</td>
</tr>
</tbody></table>
<h4 id="6-包装类的数值转换"><a href="#6-包装类的数值转换" class="headerlink" title="6)包装类的数值转换"></a>6)包装类的数值转换</h4><ul>
<li><p>基本数据类型-包装类：</p>
<ul>
<li>基本数据类型-》包装类：使用包装类的valueOf()方法，参数为对应的基本数据类型的值，返回一个包装类的对象；</li>
<li>包装类-》基本数据类型：使用包装类XXX的XXXValue()，如<code>Integer i1=new Integer(10); int i = i1.intValue();</code></li>
</ul>
</li>
<li><p>基本数据类型/包装类-字符串：</p>
<ul>
<li>基本数据类型-》字符串：可以使用基本数据类型+””，还可以使用String.valueOf(基本数据类型)方法；</li>
<li>包装类-》字符串：使用包装类的toString()方法；</li>
<li>字符串-》基本数据类型/包装类：调用包装类的parseXXX(String str)方法，如<code>int i = Integer.parseInt(&quot;10&quot;);</code></li>
</ul>
</li>
</ul>
<h4 id="7-容器类"><a href="#7-容器类" class="headerlink" title="7)容器类"></a>7)容器类</h4><table>
<thead>
<tr>
<th align="center">名称</th>
<th align="center">特点</th>
</tr>
</thead>
<tbody><tr>
<td align="center">Collection和Map</td>
<td align="center">①Collection是一个独立元素的序列，这些元素都服从一条或多条规则；<br/>②Map是一组成对的“键值对”对象，允许使用键来查找值。</td>
</tr>
<tr>
<td align="center">HashSet</td>
<td align="center">①集合元素不重复；<br/>②不保证集合中原始的顺序；<br/>③只能允许有一个null元素</td>
</tr>
<tr>
<td align="center">Vector</td>
<td align="center">①基于数组的数据结构，同步的，线程安全；<br/>②执行效率不如ArrayList</td>
</tr>
<tr>
<td align="center">ArrayList</td>
<td align="center">①基于数组的数据结构，不同步，线程不安全；<br/>②查找、修改元素效率高</td>
</tr>
<tr>
<td align="center">LinkedList</td>
<td align="center">①基于链表的数据结构，允许null元素；<br/>②增加、删除元素效率高</td>
</tr>
<tr>
<td align="center">HashMap</td>
<td align="center">①key值不能重复；<br/>②线程不安全。效率高；<br/>③null值可以作为key，且只能有一个</td>
</tr>
<tr>
<td align="center">Hashtable</td>
<td align="center">①key值不能重复；<br/>②线程安全，效率不如HashMap；<br/>③key和value都不能出现null</td>
</tr>
</tbody></table>
<h3 id="4-IO流"><a href="#4-IO流" class="headerlink" title="4.IO流"></a>4.IO流</h3><ul>
<li>概念：IO是实现输入和输出的基础，在Java中通过流的形式允许Java程序使用相同的方式来访问不同的输入和输出源；</li>
<li>体系：<ul>
<li>磁盘操作：File</li>
<li>字节操作：InputStream和OutputStream</li>
<li>字符操作：Reader和Writer</li>
<li>对象操作：Serializable</li>
<li>网络操作：Socket</li>
<li>新的输入/输出：NIO</li>
</ul>
</li>
<li>File对象：负责程序与文件之间的数据传输，在Java中文件被抽象为File类，可以表示文件和文件夹；</li>
<li>使用字节流读写文件：<ul>
<li>读：<pre><code class="hljs java"><span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">bitR</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception</span>&#123;
    File file = <span class="hljs-keyword">new</span> File(<span class="hljs-string">&quot;/home/soldier/Downloads/test.txt&quot;</span>);
    <span class="hljs-comment">//从文件中读取内容</span>
    FileInputStream fileInputStream = <span class="hljs-keyword">new</span> FileInputStream(file);
    <span class="hljs-keyword">byte</span> b[] = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[(<span class="hljs-keyword">int</span>) file.length()];
    <span class="hljs-keyword">int</span> len = fileInputStream.read(b);<span class="hljs-comment">//读取后返回长度</span>
    fileInputStream.close();
    System.err.println(<span class="hljs-keyword">new</span> String(b));
&#125;</code></pre></li>
<li>写：<pre><code class="hljs java"><span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">bitW</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception</span>&#123;
    File file = <span class="hljs-keyword">new</span> File(<span class="hljs-string">&quot;/home/soldier/Downloads/test.txt&quot;</span>);
    FileOutputStream fileOutputStream = <span class="hljs-keyword">new</span> FileOutputStream(file);
    fileOutputStream.write(<span class="hljs-string">&quot;soldier is good！\n&quot;</span>.getBytes());<span class="hljs-comment">//可以指定编码</span>
    fileOutputStream.close();
&#125;</code></pre></li>
</ul>
</li>
<li>使用字符流读写文件：<ul>
<li>读：<pre><code class="hljs java"><span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">charR</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception</span>&#123;
    FileReader fileReader = <span class="hljs-keyword">new</span> FileReader(<span class="hljs-string">&quot;/home/soldier/Downloads/test.txt&quot;</span>);
    BufferedReader bufferedReader = <span class="hljs-keyword">new</span> BufferedReader(fileReader);
    String bString;
    <span class="hljs-keyword">while</span> ((bString = bufferedReader.readLine())!=<span class="hljs-keyword">null</span>) &#123;<span class="hljs-comment">//逐行读取</span>
        System.out.println(bString);
    &#125;
    bufferedReader.close();
&#125;</code></pre></li>
<li>写：<pre><code class="hljs java"><span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">charW</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception</span>&#123;
    FileWriter fileWriter = <span class="hljs-keyword">new</span> FileWriter(<span class="hljs-string">&quot;/home/soldier/Downloads/test.txt&quot;</span>);
    PrintWriter printWriter = <span class="hljs-keyword">new</span> PrintWriter(fileWriter);
    printWriter.write(<span class="hljs-string">&quot;soldier is good！&quot;</span>);
    printWriter.close();
&#125;</code></pre>

</li>
</ul>
</li>
</ul>
<h3 id="5-Java的异常"><a href="#5-Java的异常" class="headerlink" title="5.Java的异常"></a>5.Java的异常</h3><ul>
<li><strong>概念：</strong> 指当程序中某些地方出错时创建的一种特殊的运行时错误对象，程序捕捉到这个异常后，可以编写相应的异常处理代码进行处理；</li>
<li><strong>分类：</strong> Throwable 可以用来表示任何可以作为异常抛出的类，分为两种：Error和Exception。其中Error用来表示JVM无法处理的错误，Exception分为两种：<ul>
<li>受检异常：需要用try…catch…语句捕获并进行处理，并且可以从异常中恢复；</li>
<li>非受检异常：是程序运行时错误，例如除0会引发 Arichmetic Exception，此时程序奔溃并无法恢复。</li>
</ul>
</li>
</ul>
<h2 id="第二章、SQL基础知识"><a href="#第二章、SQL基础知识" class="headerlink" title="第二章、SQL基础知识"></a>第二章、SQL基础知识</h2><h3 id="1-数据对象"><a href="#1-数据对象" class="headerlink" title="1.数据对象"></a>1.数据对象</h3><ol>
<li>数据库表：由行和列组成；</li>
<li>用户：所谓用户就是有权限访问数据库的人，同时需要自己登陆账号和密码；</li>
<li>索引：是指根据指定的数据库表列建立起来的顺序，达到快速访问数据的目的；</li>
<li>触发器：是一个用户定义SQL事务命令的集合，当对一个表进行插入、修改、删除时，这组命令就会自动执行；</li>
<li>视图：视图看上去跟表类似，但其实是一个虚拟的表，并不在数据库中真实存在。</li>
</ol>
<h3 id="2-数据库用户及权限"><a href="#2-数据库用户及权限" class="headerlink" title="2.数据库用户及权限"></a>2.数据库用户及权限</h3><h4 id="1-用户"><a href="#1-用户" class="headerlink" title="1)用户"></a>1)用户</h4><ol>
<li>创建用户：create user username@’host’ identified by ‘password’;</li>
<li>用户授权：grant 权限 on database.tables to username@’host’;</li>
<li>修改密码：alter user username@’host’ identified by ‘newPassword’;</li>
<li>删除用户：drop user username@’host’;</li>
</ol>
<h4 id="2-数据库权限"><a href="#2-数据库权限" class="headerlink" title="2)数据库权限"></a>2)数据库权限</h4><ol>
<li>三种系统权限：DBA、RESOURCE、CONNECT;</li>
<li>六种数据对象权限：ALL、DELETE、INSERT、ALTER、UPDATE、SELECT ON;</li>
<li>GRANT赋予权限：grant 权限1,权限2,… on username1,username2,…;</li>
<li>REMOVE收回权限：remove 权限1,权限2,… on username1,username2,…;</li>
</ol>
<h3 id="3-数据查询语句"><a href="#3-数据查询语句" class="headerlink" title="3.数据查询语句"></a>3.数据查询语句</h3><ol>
<li><strong>多表查询：</strong> 允许你在查询的from条件后面跟多个表，然后把表之间的关系用where进行连接；<pre><code class="hljs sql"><span class="hljs-keyword">select</span> a.stuname <span class="hljs-keyword">from</span> student a, course b <span class="hljs-keyword">where</span> a.stuid = b.stuid;</code></pre></li>
<li>外连接：多表查询的外连接技术，可以列出多表查询中其中一个表的全部记录；<pre><code class="hljs sql"><span class="hljs-comment"># 显示左表全部记录，右表匹配不上时用null</span>
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student t1 <span class="hljs-keyword">left</span> <span class="hljs-keyword">join</span> course t2 <span class="hljs-keyword">on</span> a.stuid = b.stuid;
<span class="hljs-comment"># 显示左表全部记录，右表匹配不上时用null</span>
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student t1 <span class="hljs-keyword">right</span> <span class="hljs-keyword">join</span> course t2 <span class="hljs-keyword">on</span> a.stuid = b.stuid;
<span class="hljs-comment"># Oracle数据库支持full join，mysql不支持，可以使用左外连接+ union +右外连接实现</span>
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student t1 <span class="hljs-keyword">left</span> <span class="hljs-keyword">join</span> course t2 <span class="hljs-keyword">on</span> a.stuid = b.stuid
    <span class="hljs-keyword">union</span>
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student t1 <span class="hljs-keyword">right</span> <span class="hljs-keyword">join</span> course t2 <span class="hljs-keyword">on</span> a.stuid = b.stuid;</code></pre></li>
<li>嵌套查询：select查询语句里可以嵌入select查询语句；<pre><code class="hljs sql"><span class="hljs-comment"># 查询学生有几门课</span>
<span class="hljs-keyword">select</span> <span class="hljs-keyword">name</span>, (<span class="hljs-keyword">select</span> <span class="hljs-keyword">count</span>(*) <span class="hljs-keyword">from</span> course <span class="hljs-keyword">where</span> course.stuid=student.stuid) <span class="hljs-keyword">as</span> courses <span class="hljs-keyword">from</span> student;</code></pre></li>
<li>子查询：将子查询或in或exists当成where条件的一部分；<pre><code class="hljs sql"><span class="hljs-comment"># 查询学生为soldier的学生</span>
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student <span class="hljs-keyword">where</span> stuid <span class="hljs-keyword">in</span> (<span class="hljs-keyword">select</span> stuid <span class="hljs-keyword">from</span> course <span class="hljs-keyword">where</span> <span class="hljs-keyword">name</span>=<span class="hljs-string">&#x27;soldier&#x27;</span>);
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student <span class="hljs-keyword">where</span> <span class="hljs-keyword">EXISTS</span>(<span class="hljs-keyword">select</span> <span class="hljs-keyword">name</span> <span class="hljs-keyword">from</span> student <span class="hljs-keyword">where</span> <span class="hljs-keyword">name</span>=<span class="hljs-string">&#x27;soldier&#x27;</span>);</code></pre></li>
<li>查询排序：order by语句根据指定的列对结果集进行排序；<pre><code class="hljs sql"><span class="hljs-comment"># asc是升序、desc是降序，默认asc</span>
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> student <span class="hljs-keyword">order</span> <span class="hljs-keyword">by</span> student.name <span class="hljs-keyword">asc</span>;</code></pre></li>
<li>查询分组：SQL无法把正常的列和汇总函数结合在一起，这时需要group by子句；<pre><code class="hljs sql"><span class="hljs-comment"># 统计学生的课程数</span>
<span class="hljs-keyword">select</span> stuid, <span class="hljs-keyword">count</span>(courseid) <span class="hljs-keyword">from</span> course <span class="hljs-keyword">group</span> <span class="hljs-keyword">by</span> stuid;</code></pre></li>
<li>优化查询语句的两种方法<br> 7.1 表的查询顺序：①from子句中的第一个表最先处理叫基础表，多表查询时应选择记录最少的表做基础表；②3个表连接查询时，应选择交叉表作为基础表；<br> 7.2 用exists替代in：因为exists是判断真假，二in是与之一一比较。</li>
</ol>
<h3 id="4-数据操作"><a href="#4-数据操作" class="headerlink" title="4.数据操作"></a>4.数据操作</h3><ol>
<li>插入<pre><code class="hljs sql"><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> <span class="hljs-keyword">table</span>(colum1, colum2, ...) <span class="hljs-keyword">values</span> (value1, value2, ...);</code></pre></li>
<li>修改<pre><code class="hljs sql"><span class="hljs-keyword">update</span> <span class="hljs-keyword">table</span> <span class="hljs-keyword">set</span> colum1=value1, colum2=value2, ... <span class="hljs-keyword">where</span> 条件;</code></pre></li>
<li>删除<pre><code class="hljs sql"><span class="hljs-keyword">delete</span> <span class="hljs-keyword">from</span> <span class="hljs-keyword">table</span> <span class="hljs-keyword">where</span> 条件;</code></pre>

</li>
</ol>
<p><strong>注意：</strong> 以上语句操作完成后，必须加上事务处理结束的命令commit才能生效，如果想撤回可以使用rollback命令复原。</p>
<h3 id="5-数据表定义"><a href="#5-数据表定义" class="headerlink" title="5.数据表定义"></a>5.数据表定义</h3><ol>
<li>创建表<pre><code class="hljs sql"><span class="hljs-keyword">create</span> <span class="hljs-keyword">table</span> tablename (
    <span class="hljs-keyword">id</span> <span class="hljs-built_in">int</span>,
    fullname varcher(<span class="hljs-number">20</span>)
);</code></pre></li>
<li>修改表<pre><code class="hljs sql"><span class="hljs-keyword">alter</span> <span class="hljs-keyword">table</span> tablename <span class="hljs-keyword">add</span> sex <span class="hljs-built_in">int</span>(<span class="hljs-number">11</span>);</code></pre></li>
<li>删除表<pre><code class="hljs sql"><span class="hljs-keyword">drop</span> <span class="hljs-keyword">table</span> tablename;</code></pre>

</li>
</ol>
<h2 id="第三章、Linux常用命令"><a href="#第三章、Linux常用命令" class="headerlink" title="第三章、Linux常用命令"></a>第三章、Linux常用命令</h2><h3 id="1-ls-显示文件名"><a href="#1-ls-显示文件名" class="headerlink" title="1.ls 显示文件名"></a>1.ls 显示文件名</h3><p><strong>命令格式：</strong> <code>ls [option] file</code><br>option：</p>
<ul>
<li>-l 显示详细列表<ul>
<li>结果域1：文件类型和文件权限<ul>
<li>第一个字符表示文件类型(-表示普通文件、d表示目录…)；</li>
<li>后面9个字符以每三个划分，分别表示文件拥有者、文件所属组、其他用户的权限</li>
</ul>
</li>
<li>域2：文件连接数</li>
<li>域3：文件拥有者名字</li>
<li>域4：文件所属组名字</li>
<li>域5：文件长度</li>
<li>域6-8：最近修改时间</li>
<li>域9：文件名</li>
</ul>
</li>
<li>-a 显示所有文件，包括隐藏文件</li>
<li>-R 显示文件及所有子目录</li>
<li>-F 显示文件(文件名后跟*)和目录(后跟/)</li>
<li>-d 与l选项合用，显示目录名而非其内容</li>
</ul>
<h3 id="2-cd-目录转换"><a href="#2-cd-目录转换" class="headerlink" title="2.cd 目录转换"></a>2.cd 目录转换</h3><p>注意目录分隔符为‘/’，与dos想反<br><strong>命令格式：</strong> <code>cd dirname</code></p>
<h3 id="3-pwd-显示当前路径"><a href="#3-pwd-显示当前路径" class="headerlink" title="3.pwd 显示当前路径"></a>3.pwd 显示当前路径</h3><p><strong>命令格式：</strong> <code>pwd</code></p>
<h3 id="4-cat-显示文件内容"><a href="#4-cat-显示文件内容" class="headerlink" title="4.cat 显示文件内容"></a>4.cat 显示文件内容</h3><p><strong>命令格式：</strong> <code>cat filename</code></p>
<h3 id="5-more-以分页方式查看文件内容"><a href="#5-more-以分页方式查看文件内容" class="headerlink" title="5.more 以分页方式查看文件内容"></a>5.more 以分页方式查看文件内容</h3><p><strong>命令格式：</strong> <code>more filename</code></p>
<table>
<thead>
<tr>
<th align="center">快捷键</th>
<th align="center">含义</th>
</tr>
</thead>
<tbody><tr>
<td align="center">Enter</td>
<td align="center">向下n行，需要定义，默认1行</td>
</tr>
<tr>
<td align="center">Ctrl+F或空格键</td>
<td align="center">向下滚动1屏</td>
</tr>
<tr>
<td align="center">Ctrl+B</td>
<td align="center">向上滚动1屏</td>
</tr>
<tr>
<td align="center">=</td>
<td align="center">输出当前行的符号</td>
</tr>
<tr>
<td align="center">q</td>
<td align="center">退出more</td>
</tr>
</tbody></table>
<h3 id="6-vi-创建-编辑文件"><a href="#6-vi-创建-编辑文件" class="headerlink" title="6.vi 创建/编辑文件"></a>6.vi 创建/编辑文件</h3><p><strong>命令格式：</strong> <code>vi filename</code></p>
<table>
<thead>
<tr>
<th align="center">快捷键</th>
<th align="center">含义</th>
<th align="center">快捷键</th>
<th align="center">含义</th>
</tr>
</thead>
<tbody><tr>
<td align="center">Ctrl+F</td>
<td align="center">向文件尾翻1屏</td>
<td align="center">Ctrl+B</td>
<td align="center">向文件首翻1屏</td>
</tr>
<tr>
<td align="center">i</td>
<td align="center">在光标前插入文本</td>
<td align="center">I</td>
<td align="center">在当前行首插入文本</td>
</tr>
<tr>
<td align="center">a</td>
<td align="center">在光标后插入文本</td>
<td align="center">A</td>
<td align="center">在当前行尾插入文本</td>
</tr>
<tr>
<td align="center">:w</td>
<td align="center">保存</td>
<td align="center">:x或:wq</td>
<td align="center">保存并退出文件</td>
</tr>
<tr>
<td align="center">:q</td>
<td align="center">退出vi</td>
<td align="center">:q!</td>
<td align="center">不保存并退出文件</td>
</tr>
<tr>
<td align="center">x</td>
<td align="center">非编辑状态下删除一个字符</td>
<td align="center">dd</td>
<td align="center">非编辑状态下删除整行</td>
</tr>
<tr>
<td align="center">Esc</td>
<td align="center">退出编辑状态</td>
<td align="center">:set nu</td>
<td align="center">显示文件行号</td>
</tr>
<tr>
<td align="center">/</td>
<td align="center">搜索</td>
<td align="center">n</td>
<td align="center">搜索状态下查看下一个结果，N则是上一个</td>
</tr>
</tbody></table>
<h3 id="7-df-查看问价系统磁盘使用情况"><a href="#7-df-查看问价系统磁盘使用情况" class="headerlink" title="7.df 查看问价系统磁盘使用情况"></a>7.df 查看问价系统磁盘使用情况</h3><p><strong>命令格式：</strong> <code>df [option]</code><br>option：</p>
<ul>
<li>-k：按照千字节查看；</li>
<li>-m：按照兆字节查看；</li>
</ul>
<h3 id="8-chmod-改变文件权限"><a href="#8-chmod-改变文件权限" class="headerlink" title="8.chmod 改变文件权限"></a>8.chmod 改变文件权限</h3><p><strong>命令格式：</strong> <code>chmod [options] mode file</code><br>只能文件拥有者或特权用户才能使用该功能来改变文件权限。mode可以是数字形式或以who opcode permission形式表示；who是可选的，默认是a(所有用户)；只能选择一个opcode(操作码)；可指定多个mode，以逗号隔开。<br>options：</p>
<ul>
<li>-c：只输出被改变文件信息；</li>
<li>-R：可递归遍历子目录，把修改应用到目录下所有文件和目录；</li>
<li>who：u用户、g组、o其它、a所有用户(默认)；</li>
<li>opcode：+增加权限，-删除权限；</li>
<li>permission：r读、w写、x执行</li>
</ul>
<p>我们多用三位八进制数字的形式来表示权限，第一位指定文件拥有者的权限，第一位指定文件所属组的权限，第一位指定其他用户的权限，每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限，如：</p>
<ul>
<li>3(2+1)：表示有写和执行权限</li>
<li>5(4+1)：表示读和执行权限</li>
<li>6(4+2)：表示有读写权限</li>
<li>7(4+2+1)：表示有全部权限</li>
</ul>
<p>例子：</p>
<ul>
<li><code>chmod u+x file</code>：给file的拥有者执行权限；</li>
<li><code>chmod 751 file</code>：给file的拥有者全部权限，给file所属组读和执行权限，给其它用户执行权限；</li>
</ul>
<h3 id="ps-显示当前进程状态"><a href="#ps-显示当前进程状态" class="headerlink" title="ps 显示当前进程状态"></a>ps 显示当前进程状态</h3><p><strong>命令格式：</strong> <code>ps [option]</code><br>例子：</p>
<ul>
<li><code>ps -u root</code>：显示root用户进程信息；</li>
<li><code>ps -ef</code>：显示全部进程，连带命令行；</li>
</ul>
<h3 id="mkdir-创建目录"><a href="#mkdir-创建目录" class="headerlink" title="mkdir 创建目录"></a>mkdir 创建目录</h3><p><strong>命令格式：</strong> <code>mkdir [-p] dirname</code><br>例子：</p>
<ul>
<li><code>mkdir dir1</code>：建立一个新目录dir1；</li>
<li><code>mkdir -p dir/subdir</code>：建立多级目录；</li>
</ul>
<h3 id="cp-文件复制"><a href="#cp-文件复制" class="headerlink" title="cp 文件复制"></a>cp 文件复制</h3><p><strong>命令格式：</strong> <code>cp [-r] source destination</code><br>例子：</p>
<ul>
<li><code>cp file1 file2</code>：复制file1为file2，不覆盖；</li>
<li><code>cp file1 dir/</code>：将file1复制到dir目录下；</li>
<li><code>cp /etc/profile .</code>：将etc下的profile复制到当前目录下；</li>
<li><code>cp -r /etc dir2</code>：复制整个目录，若dir2存在，则将etc目录复制到dir2目录下；若不存在，则新增dir2目录并将etc下的所有文件和目录复制到dir2目录下；</li>
</ul>
<h3 id="mv-文件移动"><a href="#mv-文件移动" class="headerlink" title="mv 文件移动"></a>mv 文件移动</h3><p><strong>命令格式：</strong> <code>mv source&#39; destination</code><br>例子：</p>
<ul>
<li><code>mv file1 file2</code>：将file1重命名为file2；</li>
<li><code>mv file1 dir</code>：将file1移动到dir目录下下；</li>
<li><code>mv dir1 dir2</code>：移动整个目录，若dir2存在，则将dir1目录移动到dir2目录下；若不存在，则新增dir2目录并将dir1下的所有文件和目录移动到dir2目录下，然后dir1消失，相当于重命名；</li>
</ul>
<h3 id="rm-删除文件"><a href="#rm-删除文件" class="headerlink" title="rm 删除文件"></a>rm 删除文件</h3><p><strong>命令格式：</strong> <code>rm [-r] file/dir</code> -f表示不用确认<br>例子：</p>
<ul>
<li><code>rm file1</code>：删除file1文件或file1空目录；</li>
<li><code>rm -r dir1</code>：删除dir1目录及其所有子目录和文件；</li>
<li><code>rm file?</code>：删除以file开头的、文件名个数为5的文件或空目录；</li>
<li><code>rm f*</code>：删除以f开头的文件或空目录；</li>
</ul>
<h3 id="find-文件查找"><a href="#find-文件查找" class="headerlink" title="find 文件查找"></a>find 文件查找</h3><p><strong>命令格式：</strong> <code>find dir -name filename</code><br>例子：</p>
<ul>
<li><code>find . -name hello</code>：寻找当前目录及子目录下叫hello的文档；</li>
<li><code>find . -name hello*</code>：寻找当前目录及子目录下以hello开头的文档；</li>
<li><code>find . -ctime +7</code>：寻找7天前创建的文档，-mtime表示修改，-7表示7天内，7表示等于7天；</li>
<li><code>find . -size +2000c</code>：与上个命令类似，找出当前目录下大小超过2000 bytes的文档；</li>
<li><code>find /tmp -user soldier</code>：查找在tmp目录下归属用户soldier的文档；</li>
</ul>
<h3 id="tar-归档命令"><a href="#tar-归档命令" class="headerlink" title="tar 归档命令"></a>tar 归档命令</h3><p><strong>命令格式：</strong> <code>tar [主选项+辅选项] 文件或目录</code><br>主选项：</p>
<ul>
<li>-c：新建一个压缩包；</li>
<li>-x：解压文件；</li>
<li>-t：查看压缩文件的内容；</li>
<li>-r：向压缩文件追加文件；</li>
<li>-u：更新原压缩包的文件；</li>
</ul>
<p>辅助选项：</p>
<ul>
<li>-z：是否同时具有gzip的属性？即是否需要用gzip压缩或解压？一般格式为xxx.tar.gz或xxx.tgz；</li>
<li>-v：显示操作工程；</li>
<li>-f：使用文档名，注意要在f之后立即接文档名，不能再加其它参数；</li>
</ul>
<p>例子：</p>
<ul>
<li><code>tar -cvf 123.tar 111 222</code>：将111和222压缩成123.tar；</li>
<li><code>tar -zcvf 123.tar.gz 111 222</code>：使用gzip将111和222压缩成123.tar.gz；</li>
<li><code>tar -tvf 123.tar</code>：查看123.tar中的文件；</li>
<li><code>tar -xvf 123.tar</code>：解压123.tar；</li>
<li><code>tar -zxvf 123.tar.gz</code>：使用gzip解压123.tar.gz；</li>
<li><code>tar -rvf 123.tar 333</code>：将333追加到123.tar中；</li>
</ul>
<h2 id="第四章、会计财务知识"><a href="#第四章、会计财务知识" class="headerlink" title="第四章、会计财务知识"></a>第四章、会计财务知识</h2><p>会计是基于人类生产活动和对生产活动进行记录的需要而产生的：</p>
<ul>
<li>古代会计：主要表现为官厅会计，会计匆匆也人员多为各级官厅、衙门服务；</li>
<li>近代会计：又称为企业会计，其标志是十四、五世纪复式记账体系的形成；</li>
<li>现代会计：又称为预测、决策会计，其标志是二十世纪二十年代以来在成本会计的基础上形成管理会计的内容和体系；</li>
</ul>
<p>会计的职能</p>
<ul>
<li>核算职能：输入（提供定量描述经济过程及其结果的数据信息）、转换（记账算法，整理分类汇总分析提炼输入的原始数据，转换为财务信息）、输出（通过财务报表提供系统的决策有用的信息），特点：<ul>
<li>以货币为主要计量单位；</li>
<li>反映过去发生的经济事项；</li>
<li>完整性，连续性，系统性；</li>
</ul>
</li>
<li>监督职能：货币监督；事前监督、事中监督和事后监督；内部监督和外部监督</li>
</ul>
<h3 id="为什么学习会计？"><a href="#为什么学习会计？" class="headerlink" title="为什么学习会计？"></a>为什么学习会计？</h3><p>经济发展需要：经济越发展，会计越重要、业务需求；<br>公司的业务对象为银行，即业务需求，需要了解一些会计知识，便于业务沟通，以及产品的开发。</p>
<h3 id="会计的三大问题-重点"><a href="#会计的三大问题-重点" class="headerlink" title="会计的三大问题(重点)"></a>会计的三大问题(重点)</h3><h4 id="1-为什么要提供会计信息？"><a href="#1-为什么要提供会计信息？" class="headerlink" title="1.为什么要提供会计信息？"></a>1.为什么要提供会计信息？</h4><ol>
<li>所有者和经营管理者分离；</li>
<li>反映和监督；</li>
<li>分析和决策；</li>
<li>企业做大必须的方法论、管理工具；</li>
</ol>
<h4 id="2-向谁提供会计信息？"><a href="#2-向谁提供会计信息？" class="headerlink" title="2.向谁提供会计信息？"></a>2.向谁提供会计信息？</h4><ol>
<li>经营者：总经理及相关经营管理人员；</li>
<li>所有者：投资人；</li>
<li>债权人：银行等向企业贷款的机构；</li>
<li>监督机构：税务部门及行业监督机构；</li>
<li>其它：社会经济学者、国家宏观调控者；</li>
</ol>
<h4 id="3-提供什么信息？"><a href="#3-提供什么信息？" class="headerlink" title="3.提供什么信息？"></a>3.提供什么信息？</h4><ol>
<li>详细记录每一个经济活动——过程原始凭证；</li>
<li>统计所有者经济活动记录出具体财务报表；</li>
<li>同行业横向比较，大环境；行业前景分析报告；</li>
<li>本公司不同会计期间纵向比较；自身发展状况和趋势分析报告；</li>
<li>公司自身的财务状况分析报告；</li>
</ol>
<h3 id="会计对象"><a href="#会计对象" class="headerlink" title="会计对象"></a>会计对象</h3><ul>
<li>静态形式对象：资金（财务状况）；</li>
<li>动态形式对象：资金运动（经营过程）；</li>
</ul>
<h3 id="会计四前提-重点"><a href="#会计四前提-重点" class="headerlink" title="会计四前提(重点)"></a>会计四前提(重点)</h3><ol>
<li><font color=#FF000>会计主体</font><br> 含义：是会计工作为其服务的特定单位或组织；<br> 特点：界定了不同的会计主体其会核算的空间范围；<br> 目的：解决了为谁核算的问题解决；</li>
<li><font color=#FF000>持续经营</font><br> 含义：是指会计主体的生产经营活动在可预见的将来将延续下去，不会进行清算；<br> 特点：时间范围；<br> 目的：它为会计要素的确认提供了理论依据；</li>
<li><font color=#FF000>会计期间</font><br> 含义：是指将会计主体持续不断的经济活动分割为一定的期间；<br> 内容：可按时间人为分为月、季、半年、年度等；</li>
<li><font color=#FF000>货币计量</font><br> 含义：是指会计主体在会计核算过程中采用货币作为计量单位，记录、反映会计主体的经营情况；<br> 要求：确定一种记账的本位币；业务收支以外币作为计量单位的，编制报表时，应折算为本位币；</li>
</ol>
<p><font color=#FF000><strong>权责发生制</strong></font>：是指以收入的权利和支出的业务是否属于本期作为标准来确认收入和费用的一种记账基础；（更能调动员工积极性，类似于销售）<br><font color=#FF000><strong>收付实现制</strong></font>：是以款项是否实际收到和付出为标准来确认收入和费用的一种记账基础；（类似于教师等为人民服务的）</p>
<h3 id="会计六大要素-重点"><a href="#会计六大要素-重点" class="headerlink" title="会计六大要素(重点)"></a>会计六大要素(重点)</h3><p>利润表要素：反应企业的经营成果，表现资金显著变动的状态；<br>资产负债表要素：反映企业的财务状况，表现资金相对静止的状态；<br>分为两种：</p>
<ol>
<li>静态要素： 资产（预期给公司带来收益的一切资源）、负债、所有者权益</li>
<li>动态要素： 收入、费用、利润<ul>
<li>资产+费用 = 负债+所有者权益+收入</li>
<li>资产 = 负债+所有者权益+利润</li>
</ul>
</li>
</ol>
<h4 id="1-资产"><a href="#1-资产" class="headerlink" title="1.资产"></a>1.资产</h4><p>1.<font color=#FF000>流动资产</font>：预计在一个正常营业周期中变现、出售或耗用；主要为交易目的而持有；预计在资产负债起一年内（含一年）变现等；（包含：库存现金、银行存款、交易性金融资产、应收及预付款项和存货等）<br>2.<font color=#FF000>非流动资产</font>：持有一年以上或超过一年的在一个营业周期以上才能实现；（包含：长期投资、固定资产、无形资产和其他资产）</p>
<table>
<thead>
<tr>
<th align="center">一年的变化</th>
</tr>
</thead>
<tbody><tr>
<td align="center">资产 = 负债 + 所有者权益（年初）</td>
</tr>
<tr>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">资产 + 费用 = 负债 + 所有者权益 + 收入（发生过程）</td>
</tr>
<tr>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">资产 = 负债 + 所有者权益 + 收入 - 费用（结转过程）</td>
</tr>
<tr>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">资产 = 负债 + 所有者权益 + 利润（年末）</td>
</tr>
<tr>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">资产 = 负债 + 所有者权益（下一年年初）</td>
</tr>
</tbody></table>
<h4 id="2-负债"><a href="#2-负债" class="headerlink" title="2.负债"></a>2.负债</h4><p>1.<font color=#FF000>流动负债</font>：将在一年或超过一年的一个营业周期以内偿还的债务；（短期借款、应付票据、应付账款和应交税费等）<br>2.<font color=#FF000>非流动负债</font>：将在一年或超过一年的一个营业周期以上偿还的债务；（长期负债、应付债券和长期应付款等）</p>
<h4 id="3-所有者权益"><a href="#3-所有者权益" class="headerlink" title="3.所有者权益"></a>3.所有者权益</h4><p>1.<font color=#FF000>实收资本（股本）</font>：企业的注册资本<br>2.<font color=#FF000>资本公积</font>：除注册资本外的资本：资本（股本）溢价、接受捐赠的资本、拨款转入、外币资本折算差额<br>3.<font color=#FF000>盈利公积</font>：从税后利润中提取的资金<br>4.<font color=#FF000>未分配利润</font>：留待以后分配的利润</p>
<h4 id="4-收入"><a href="#4-收入" class="headerlink" title="4.收入"></a>4.收入</h4><p>公司资产增加，利益增加（营业外收入、主营业务收入、其它业务收入）</p>
<h4 id="5-费用"><a href="#5-费用" class="headerlink" title="5.费用"></a>5.费用</h4><p>企业在经营过程中产生的耗费（营业外支出、生产费用、经营期间费用）</p>
<h4 id="6-利润"><a href="#6-利润" class="headerlink" title="6.利润"></a>6.利润</h4><p>利润 = 收入-费用，企业收入扣除产品成本和税金</p>
<h3 id="会计等式"><a href="#会计等式" class="headerlink" title="会计等式"></a>会计等式</h3><ol>
<li>作用：是复式记账法的理论基础，也是编制资产负债表的依据</li>
<li>当经济业务发生引起等式两边会计要素的变化<br> 涉及到等式一边时，一增一减<br> 涉及到等式两边时，同增同减</li>
</ol>
<table>
<thead>
<tr>
<th align="center">会计等式</th>
</tr>
</thead>
<tbody><tr>
<td align="center">资产 = 负债+所有者权益</td>
</tr>
<tr>
<td align="center">资产 = 负债+所有者权益+利润（收入-费用）</td>
</tr>
<tr>
<td align="center">资产+费用 = 负债+所有者权益+收入</br>利润 = 收入-费用</td>
</tr>
</tbody></table>
<p>为什么资产 = 负债？<br>    是同一事物的不同角度来描述，资产是从使用者的角度，负债是从归还者的角度描述</p>
<h3 id="会计方法"><a href="#会计方法" class="headerlink" title="会计方法"></a>会计方法</h3><p>基本方法：</p>
<ol>
<li>设置账户；</li>
<li>复式记账；</li>
<li>填制和审核凭证；</li>
<li>登记账簿；</li>
<li>成本计算；</li>
<li>财产清查；</li>
<li>编制会计报表</li>
</ol>
<h3 id="复式记账法（重点）"><a href="#复式记账法（重点）" class="headerlink" title="复式记账法（重点）"></a>复式记账法（重点）</h3><h4 id="一、记账方法"><a href="#一、记账方法" class="headerlink" title="一、记账方法"></a>一、记账方法</h4><ol>
<li>概念：将经济业务在会计账户中进行登记的方法。</li>
<li>分类：<ol>
<li>单式记账法：对于发生每一项经济业务只在一个账户中进行登记的方法；</li>
<li>复式记账法：对于发生的每笔经济业务，都在两个或两个以上相互联系的账户中进行登记的方法。</li>
<li>两者相比：复式记账法可以全面了解经济业务的发生过程，可以进行试算平衡。</li>
</ol>
</li>
</ol>
<h4 id="二、借贷记账法"><a href="#二、借贷记账法" class="headerlink" title="二、借贷记账法"></a>二、借贷记账法</h4><ol>
<li>定义：借贷记账法是以“借”和“贷”为记账符号，把发生的经济业务所引起会计要素的增减变动，以相等的金额，同时在两个或两个以上的会计账户中。相互联系进行登记的一种复式的记账方法；</li>
<li>意义：是世界通用的记账方法，我国法定的记账方法；</li>
<li>理论依据：<ol>
<li>资产 = 负债 + 所有者权益 = 负债 + （所有者权益 + 利润） = 负债 + （所有者权益 + 收入 - 费用）；</li>
<li>资产 + 费用（成本） = 负债 + 所有者权益 + 收入；</li>
</ol>
</li>
<li>记账符号：<ul>
<li>记账符号：会计核算中所采用的表示对象增减变化的记账标记；</li>
<li>以“借”和“贷”为记账符号；</li>
<li>借贷记账法下，账户左方为借方，右方为贷方，用来反映资产或权益的增减变化；</li>
<li>具体含义：在资产（成本、费用）类账户中，“借”表示增加（借+），“贷”表示减少（贷-）</li>
<li>“借”和“贷”作为记账符号，已失去了原本的字面涵义，不再表示信用关系；</li>
<li>快速口诀：<ul>
<li>等号左边是资产性质，等号右边的是负债性质；</li>
<li>资产性质的增加或负债性质的减少记<code>借</code>；</li>
<li>资产性质的减少或负债性质的增加记<code>贷</code>；</li>
</ul>
</li>
</ul>
</li>
<li>记账规则：“有借必有贷，借贷比相等”<ol>
<li>对每一笔业务必须同时计入两个或两个以上的账户，而且其中一个计入借方，另一个计入贷方，决不能全计入借或贷方，即“有借必有贷”；</li>
<li>登记时，计入借方账户的金额必须与计入贷方账户的金额相等，即“借贷必相等”；</li>
</ol>
</li>
</ol>
<h4 id="三、复式记账法步骤"><a href="#三、复式记账法步骤" class="headerlink" title="三、复式记账法步骤"></a>三、复式记账法步骤</h4><p>复式记账法：当一个经济活动的发生影响到两个及其以上的科目，把他描述清楚的记账方法叫复式记账法<br>步骤：</p>
<ol>
<li>确定是否要记账？</li>
<li>确认关联哪几个科目？</li>
<li>确认科目的性质；</li>
<li>确认发生额对金额的影响？</li>
<li>确认科目的借贷方向？确定是贷方还是借方</li>
<li>写分录（一个会计分录只能有一个主体）</li>
</ol>
<h4 id="总结（重点-）"><a href="#总结（重点-）" class="headerlink" title="总结（重点**）"></a>总结（重点**）</h4><ol>
<li>会计等式左边是<code>资产</code>，右边是<code>负债</code>；</li>
<li>资产性质的增加或负债性质的减少记<code>借</code>；</li>
<li>资产性质的减少或负债性质的增加记<code>贷</code>；</li>
<li>应收是<code>资产</code> = 实付（以此类推应付、实收、实付）</li>
<li><code>经常出现的会计账户</code>（科目）：现金、银行账户、应收</li>
</ol>
<h3 id="练习"><a href="#练习" class="headerlink" title="练习"></a>练习</h3><h4 id="1、从银行提取现在6000元备用"><a href="#1、从银行提取现在6000元备用" class="headerlink" title="1、从银行提取现在6000元备用"></a>1、从银行提取现在6000元备用</h4><h5 id="以自己为会计主体"><a href="#以自己为会计主体" class="headerlink" title="以自己为会计主体"></a>以自己为会计主体</h5><p>我自己现在的现金和我在银行的存款</p>
<table>
<thead>
<tr>
<th align="center">步骤</th>
<th align="center">会计账户1</th>
<th align="center">会计账户2</th>
</tr>
</thead>
<tbody><tr>
<td align="center">（1）分析业务中涉及到的<font color=#FF000>会计账户</font></td>
<td align="center">现金</td>
<td align="center">银行存款</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">&#8595;</td>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">（2）判断会计账户的<font color=#FF000>类型和增减</font></td>
<td align="center">资产+</td>
<td align="center">资产-</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">&#8595;</td>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">（3）确认会计账户的<font color=#FF000>结构和记账方向</font></td>
<td align="center">借方</td>
<td align="center">贷方</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">&#8595;</td>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">（4）记录账户的<font color=#FF000>增减变化及金额</font></td>
<td align="center">借：现金6000</br>(资产性质的增加)</td>
<td align="center">贷：银行存款6000</br>(资产性质的减少)</td>
</tr>
</tbody></table>
<h5 id="以银行为主体时"><a href="#以银行为主体时" class="headerlink" title="以银行为主体时"></a>以银行为主体时</h5><p>银行账户减少6000，银行欠我的钱和银行的现金都减少了</p>
<table>
<thead>
<tr>
<th align="center">会计账户1</th>
<th align="center">会计账户2</th>
</tr>
</thead>
<tbody><tr>
<td align="center">应付</td>
<td align="center">现金</td>
</tr>
<tr>
<td align="center">&#8595;</td>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">负债-</td>
<td align="center">资产-</td>
</tr>
<tr>
<td align="center">&#8595;</td>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">借方</td>
<td align="center">贷方</td>
</tr>
<tr>
<td align="center">&#8595;</td>
<td align="center">&#8595;</td>
</tr>
<tr>
<td align="center">借：应付6000</br>(负债性质的减少)</td>
<td align="center">贷：现金6000</br>(资产性质的减少)</td>
</tr>
</tbody></table>
<h4 id="2、A公司卖掉矿泉水一瓶收入3元"><a href="#2、A公司卖掉矿泉水一瓶收入3元" class="headerlink" title="2、A公司卖掉矿泉水一瓶收入3元"></a>2、A公司卖掉矿泉水一瓶收入3元</h4><h5 id="以公司为主体"><a href="#以公司为主体" class="headerlink" title="以公司为主体"></a>以公司为主体</h5><p>借：现金3元（资产性质增加）    贷：矿泉水3元（资产性质减少）</p>
<h4 id="3、A公司从外购进矿泉水一瓶花费2元"><a href="#3、A公司从外购进矿泉水一瓶花费2元" class="headerlink" title="3、A公司从外购进矿泉水一瓶花费2元"></a>3、A公司从外购进矿泉水一瓶花费2元</h4><h5 id="以公司为主体-1"><a href="#以公司为主体-1" class="headerlink" title="以公司为主体"></a>以公司为主体</h5><p>借：矿泉水2元（资产性质增加）    贷：现金2元（资产性质减少）</p>
<h4 id="4、A公司员工小张向公司借款500元用于差旅费"><a href="#4、A公司员工小张向公司借款500元用于差旅费" class="headerlink" title="4、A公司员工小张向公司借款500元用于差旅费"></a>4、A公司员工小张向公司借款500元用于差旅费</h4><h5 id="以小张为主体"><a href="#以小张为主体" class="headerlink" title="以小张为主体"></a>以小张为主体</h5><p>借：现金500元（资产性质增加）    贷：负债500元（负债性质增加）</p>
<h4 id="5、A公司员工小王在办公场所捡到100元"><a href="#5、A公司员工小王在办公场所捡到100元" class="headerlink" title="5、A公司员工小王在办公场所捡到100元"></a>5、A公司员工小王在办公场所捡到100元</h4><h5 id="以小王为主体"><a href="#以小王为主体" class="headerlink" title="以小王为主体"></a>以小王为主体</h5><p>借：现金100元（资产性质增加）    贷：非营业收入（负债性质增加）</p>
<h2 id="第五章、银行总体介绍"><a href="#第五章、银行总体介绍" class="headerlink" title="第五章、银行总体介绍"></a>第五章、银行总体介绍</h2><h3 id="银行的分类"><a href="#银行的分类" class="headerlink" title="银行的分类"></a>银行的分类</h3><p><code>国有商业银行</code>：中国工商银行、中国银行、中国农业银行、中国建设银行、交通银行、邮政储蓄；<br><code>政策性银行</code>：国家开发银行、中国进出口银行、中国农业发展银行；<br><code>股份制商业银行</code>：招商银行、中信银行、兴业银行、光大银行、民生银行…；<br><code>地方性商业银行</code>：①城市商业银行(北京、上海、天津银行…)，②村镇银行、农村资金互助银行(北京昌平赵峰村镇银行…)，③农村金融机构(信用社[乡]、农合行[县]、农商行[市]广西农村信用社…)；<br><code>外资银行</code>：汇丰银行、东亚银行…<br><code>新生代银行</code>：民营银行、互联网银行、直销银行；</p>
<h3 id="人民银行和商业银行的区别"><a href="#人民银行和商业银行的区别" class="headerlink" title="人民银行和商业银行的区别"></a>人民银行和商业银行的区别</h3><p><strong>中国人民银行</strong>，通俗的说它有两个特点：一是它是银行的银行，二是它是政府的银行，中国人民银行是金融货币管理机关，在行政上它是国家部级行政单位，是国务院的直属机构，管理商业银行，指定中国的货币和财政政策。<br><strong>商业银行</strong>是企业银行，是国家承认的社会金融机构，商业银行与一般工商企业一样，是以盈利为目的的企业。</p>
<h3 id="商业银行的四大职能"><a href="#商业银行的四大职能" class="headerlink" title="商业银行的四大职能"></a>商业银行的四大职能</h3><p><code>信用中介</code>是通过银行的负债业务，把社会上的各种闲散货币几种到银行里来，再通过资产业务，把它投入经济各部门。<br>信用中介是商业银行最基本、最能反映其经营活动特征的职能。</p>
<p><code>支付中介</code>是商业银行为客户收付与结算的职能。<br>银行通过转账结算，代替客户几种办理货币收付，对于减少流通中现金的使用，节约流通费用，加速资金周转具有重要的作用。</p>
<p><code>信用创造</code>：商业银行把负债作为货币进行流通，在支票流通和转账结算的基础上，贷款转化为存款，在存款不提或不完全提现时，增加了商业银行的资金来源，形成数倍于原始存款的派生存款。</p>
<p><code>金融服务</code>是指金融机构通过开展业务活动为客户提供包括融资投资、储蓄、信贷、结算、证券买卖、商业保险等多方面的服务。</p>
<h3 id="商业银行的业务分类"><a href="#商业银行的业务分类" class="headerlink" title="商业银行的业务分类"></a>商业银行的业务分类</h3><p>按<code>经营业务币种</code>的不同分为：本币业务和外币业务；<br>按<code>业务服务对象</code>的不同分为：公司业务、零售业务和同业业务；<br>按<code>业务资金来源</code>的不同分为：负债业务(存款)、资产业务(贷款)以及中间业务(第三方业务)；</p>
<h3 id="商业银行简介"><a href="#商业银行简介" class="headerlink" title="商业银行简介"></a>商业银行简介</h3><p><code>银行的经营三性原则</code>：是指银行在经营活动过程中必须兼顾安全性(经营管理的保证)、流动性(前提)和盈利性(目标)的原则，追求三者的相统一、相协调；</p>
<p><code>银行的利率</code>：是银行经营中常用到的一个术语，是影响银行经营业绩的一个重要变量；</p>
<p>银行经营过程中常用的<code>资金价格</code>分为三种：</p>
<ol>
<li>存款利率：是指客户在银行和其它金融机构所取得的利息与存款本金的比率；存款利率随着种类的不同而不同。存款周期越长，存款利率越高；反之存款周期越短，存款利率越低；</li>
<li>资金成本价格：是指银行经营中所有负债资金形成的资金的成本价，是涵盖存款、同业存款、准备金存款和现金在内的各种资金的平均价格；</li>
<li>贷款利率：货款利率是银行或其它金融机构发放贷款所取得的利息与贷款本金的比率。</li>
</ol>
<p>重要空白凭证：是指由商业银行或单位填写金额并经签章后即具有支取款项效力的空白凭证；（支票、本票、汇票、卡、存折、存单、证实书等）</p>
<p>商业银行经营<code>面临的主要风险</code>有：</p>
<table>
<thead>
<tr>
<th align="center">风险类型</th>
<th align="center">描述</th>
</tr>
</thead>
<tbody><tr>
<td align="center">信用风险</td>
<td align="center">又称为违约风险，是指借款人、证券发行人或交易对方因种种原因，不愿或无力履行合同条件而构成违约，致使银行、投资者或交易对方遭受损失的可能性</td>
</tr>
<tr>
<td align="center">市场风险</td>
<td align="center">指在证券市场中因股市价格、利率、汇率等的变动而导致价值未预料到的潜在损失的风险</td>
</tr>
<tr>
<td align="center">操作风险</td>
<td align="center">银行办理业务或内部管理出了差错，地震火灾等</td>
</tr>
<tr>
<td align="center">流动性风险</td>
<td align="center">指商业银行虽然有清偿能力，但无法及时获得充足资金或无法以合理成本及时获得充足资金以应对资产增长或支付到期债务的风险</td>
</tr>
</tbody></table>
<h3 id="练习-1"><a href="#练习-1" class="headerlink" title="练习"></a>练习</h3><ol>
<li>贷款损失准备金包括：一般准备金、专项准备金、特种准备金；</li>
<li>银行业务：负债业务、资产业务、中间业务</li>
</ol>
<h2 id="第六章、银行的存款业务"><a href="#第六章、银行的存款业务" class="headerlink" title="第六章、银行的存款业务"></a>第六章、银行的存款业务</h2><p>存款的意义：存款是指银行吸收单位和居民个人存入的货币资金。存款业务是指银行以信用方式吸收社会闲置资金的筹资活动。<br>银行的存款产品通常分为：个人产品、公司产品和同业产品。<br>个人储蓄产品分为：活期存款、定期存款和人民币大额存单。<br>定期存款又分为：整存整取、零存整取、通知存款、存本取息、教育储蓄和定活两便</p>
<p>*活期存款的特点：</p>
<ol>
<li>每日计提利息（计提的分录，科目）</li>
<li>可设定结息周期</li>
<li>支持分段计息、单户结息和批量结息</li>
<li>满足活期账户/协定账户/透支账户</li>
<li>提供对账单</li>
<li>可支持存折/支票</li>
</ol>
<p>*定期存款的特点：</p>
<ol>
<li>每日计提利息</li>
<li>支取时一次性结息</li>
<li>可提前支取或到期支取</li>
<li>到期可本金转存或本息转存</li>
<li>到期支付活期存款利息</li>
<li>到期日为节假日的处理</li>
</ol>
<h3 id="1-活期储蓄存款"><a href="#1-活期储蓄存款" class="headerlink" title="1.活期储蓄存款"></a>1.活期储蓄存款</h3><p>概念：是存款时不限定存期，可随时存取的业务，起存金额为1元，外汇为20元等值人民币。<br>特点：方便将个人生活待用款和暂时不用款暂存；存取款灵活方便；还具有代收代付、代发工资等功能；个人活期存款按支取日利率计息。<br>计息规则：按支取日存款利率计息，算头不算尾</p>
<h3 id="2-整存整取"><a href="#2-整存整取" class="headerlink" title="2.整存整取"></a>2.整存整取</h3><p>概念：存款时约定存期并一次将现金整笔存入，到期后一次支取本息。<br>特点：利率高，但受时间限制，一旦提前支取，损失较大。适用于有预见性使用的或长期不使用的资金。<br>计息规则：按存款日存款利率计息，逾期时预期部分利率按活期；提前支取也是按活期。</p>
<h3 id="3-零存整取"><a href="#3-零存整取" class="headerlink" title="3.零存整取"></a>3.零存整取</h3><p>概念：存款人约定存期，以开户日为准，每月按约定的固定金额存入一次，到期一次性支取本金和利息。<br>特点：逐月存储，适合有固定收入的；中途漏存可次月补齐；连续漏存两次视为违约，违约后存入的部分，支取时按活期。<br>计息规则：按存款日存款利率计息，逾期时利率按活期；提前支取也是按活期。</p>
<h3 id="4-存本取息"><a href="#4-存本取息" class="headerlink" title="4.存本取息"></a>4.存本取息</h3><p>概念：约定存期和取息期，一次性存入本金，分次支取利息，到期后一次支取本金的定期储蓄存款业务。<br>特点：带来较高的利息收入；开户时可以选择约定转存；可以做质押贷款；可以办理提前支取。<br>计息规则：到期支取本金，分次支取利息；不可提前支取利息，遇取息日未取息，以后可以随时补取息；可以办理提前支取，全部提前支取时按活期，需要补已取利息</p>
<h3 id="5-教育储蓄"><a href="#5-教育储蓄" class="headerlink" title="5.教育储蓄"></a>5.教育储蓄</h3><p>概念：针对接受非义务教育而存入的储蓄资金实行的利率优惠、利息免税的一种零存整取定期储蓄存款业务。起存金额为50，每份本金不得超过2万；<br>特点：存期灵活、总额控制、利率优惠、利息免税、定向使用等特点。能积零成整，满足中低收入家庭每月固定小额存储，积蓄资金。<br>计息规则：提供学生证明的享受利息税优惠，只能提前支取全部并按活期。</p>
<h3 id="6-通知存款"><a href="#6-通知存款" class="headerlink" title="6.通知存款"></a>6.通知存款</h3><p>概念：存款时不约定存期，一次性存入本金，可以一次或多次支取，支取时需提前通知营业机构，约定支取存款日期和金额的业务。<br>特点：利率高于活期，灵活、支取方便，能获得较高收益，适用于大额、存取较频繁的存款。<br>计息规则：①实际存期不足通知期限，按活期；②未提前通知而支取的，支取部分按活期；③已办理通知手续而提前支取的，支取部分按活期；④支取金额不足或超过通知金额的，不足或超过部分按活期。</p>
<h3 id="7-定活两便"><a href="#7-定活两便" class="headerlink" title="7.定活两便"></a>7.定活两便</h3><p>概念：存款时不约定存期，一次性存入本金，可随时一次性支取本金和利息的业务。<br>特点：方便灵活，收益较高；手续简便，利率合理。存款期限不受限制，适合存款期限不确定的客户。<br>计息规则：存期不满三个月按活期；三到六个月按三个月整存整取利率的0.6；六个月到一年按六个月整存整取利率的0.6；一年以上的按一年整存整取利率的0.6。</p>
<h3 id="8-人民币大额存单"><a href="#8-人民币大额存单" class="headerlink" title="8.人民币大额存单"></a>8.人民币大额存单</h3><p>概念：面向个人和企业、机构客户发行的记账式大额存款电子化凭证，是具有标准化期限、最低投资金额要求、市场化定价的存款产品。按照人民银行相关规定，大额存单纳入存款保险范围。<br>特点：标准存款，本息安全；方便灵活，附加不同流动性支持；市场化定价，收益更高。</p>
<h3 id="9-对公存款账户"><a href="#9-对公存款账户" class="headerlink" title="9.对公存款账户"></a>9.对公存款账户</h3><p><strong>基本存款帐户</strong>：是单位的主办账户，单位的主要转账收付及工资、奖金和日常现金的支取，必须通过该账户办理。存款人只能在银行开立一个基本存款账户，其它银行结算账户的开立必须以基本存款账户的开立为前提。<br><strong>一般存款帐户</strong>：是存款人因借款或其它结算需要，在基本存款账户开户行以外的银行营业机构开立的银行结算账户；该账户可以办理现金缴存，但不得办理现金支取，一般存款账户没有数量限制。<br><strong>临时存款帐户</strong>：是存款人因临时需要并在规定期限内使用而开立的银行结算账户，临时存款账户需要确定有效期，可支取现金，有效期限不得超过2年。注册验资的临时存款账户在验资期间只收不付。<br><strong>专用存款帐户</strong>：是存款人按照法律、行政法规和规章，对其特定用途资金进行专项管理和使用而开立的银行结算账户。未经人民银行批准，不得在专用账户中支取现金。</p>
<h3 id="10-银行卡"><a href="#10-银行卡" class="headerlink" title="10.银行卡"></a>10.银行卡</h3><p>核心功能：设置帐户功能、存款功能、取款功能<br>基本功能：转账功能、贷款功能、常规消费功能<br>服务功能：手机银行等…</p>
<h3 id="11-银行账户的分类"><a href="#11-银行账户的分类" class="headerlink" title="11.银行账户的分类"></a>11.银行账户的分类</h3><table>
<thead>
<tr>
<th align="center">账户类型</th>
<th align="center">开户方式</th>
<th align="center">功能</th>
<th align="center">额度</th>
</tr>
</thead>
<tbody><tr>
<td align="center">I类</td>
<td align="center">传统柜面开户</br>经银行工作人员现场核验身份信息的自助机开户</td>
<td align="center">属全功能银行结算账户，安全等级最高、可存取现金、理财、转账、缴费、支付等。</td>
<td align="center">不限</td>
</tr>
<tr>
<td align="center">II类</td>
<td align="center">传统柜面开户</br>未经银行工作人员现场核验身份信息的自助机开户</br>电子渠道开户</td>
<td align="center">具备理财+支付功能；可以购买理财产品和消费支付，不得存取现金。</td>
<td align="center">单日最高1万，理财除外</td>
</tr>
<tr>
<td align="center">III类</td>
<td align="center">同II类</td>
<td align="center">限定金额的消费和缴费支付</td>
<td align="center">账户余额不得超过1000，超额原路返还同名I类账户</td>
</tr>
</tbody></table>
<h3 id="存款利息的计算"><a href="#存款利息的计算" class="headerlink" title="存款利息的计算"></a>存款利息的计算</h3><p>积数计息法：按实际天数每日累计账户余额，以累计积数乘以日利率计算利息</p>
<ul>
<li>利息 = 累计计息积数 * 年利率 / 360</li>
</ul>
<p>逐笔计息法：按预定的计息公式逐笔计算利息，分为对年、月、日：</p>
<ul>
<li>利息(到期取) = 本金 * 年(月)数 * 年(月)利率</li>
<li>利息(到期未取) = 本金 * 年(月)数 * 年(月)利率 + 本金 * 零头天数 * 日利率</li>
<li>利息 = 本金 * 实际天数 * 日利率</li>
</ul>
<p>利率换算规则：</p>
<ul>
<li>日利率 = 年利率 / 360</li>
<li>月利率 = 年利率 / 12</li>
<li>日利率 = 月利率 / 30</li>
</ul>
<p>利息计算规则：</p>
<ul>
<li>各种存款“算头不算尾”的办法计算计息天数。</li>
<li>计息起点以元为单位，元以下的角、分不计利息。</li>
<li>利息金额算至厘位，计至分位，分位以下四舍五入。</li>
</ul>
<h3 id="其它"><a href="#其它" class="headerlink" title="其它"></a>其它</h3><ol>
<li>公司存款业务：协议存款、结构性存款</li>
<li>常用的账户状态：预开户、正常、冻结、长期不动户、久悬户、销户</li>
</ol>
<h2 id="第七章、银行支付结算与贷款"><a href="#第七章、银行支付结算与贷款" class="headerlink" title="第七章、银行支付结算与贷款"></a>第七章、银行支付结算与贷款</h2><h3 id="1-支付结算的支付工具"><a href="#1-支付结算的支付工具" class="headerlink" title="1.支付结算的支付工具"></a>1.支付结算的支付工具</h3><p>按形式划分：采用的结算形式不同，结算方式分为现金结算和非现金结算；现金结算是当事人直接用现金货币兑付的行为，非现金结算是当事人通过银行将款项从付款方划转到收款方的行为；<br>按工具划分：依据结算工具不同，分为票据结算和非票据结算；票据结算是以票据作为支付工具结算的行为（例如汇票、本票、支票），非票据结算是客户间以结算凭证为依据来结算的行为（例如银行卡、汇兑、托收承付、委托收款）</p>
<p>票据的功能：</p>
<ol>
<li>支付功能</li>
<li>汇兑功能：一国货币所具有的购买外国货币的能力。</li>
<li>信用功能：票据当事人可以凭借自己的信誉，将未来才能获得的金钱作为现在的金钱来使用。</li>
<li>结算功能：债务抵消功能。</li>
<li>融资功能：融通资金或调度资金，是通过票据的贴现、转贴现和再贴现实现的。</li>
<li>流通作用：票据的转让无需通知其债务人，只要票据要式具备就可交付或背书转让票据权利。</li>
</ol>
<p>种类：</p>
<ol>
<li>汇票：是出票人签发的，委托付款人在见票时或者在指定日期无条件支付确定的金额给收款人或者持票人的票据。<ol>
<li>按付款人不同：银行汇票、商业汇票</li>
<li>按有无附属单据：光票汇票、跟单汇票</li>
<li>按付款时间：即期汇票、远期汇票（远期汇票按承兑人分为：商业承兑、银行承兑汇票）</li>
<li>按流通地域：国内汇票、国际汇票</li>
<li>行为：出票 → 提示 → 承兑 → 收款 → 背书 → 贴现 → 拒付 → 追索 → 出票</li>
</ol>
</li>
<li>本票：是出票人签发的，承诺自己在见票时无条件支付确认的金额给收款人或者持票人的票据。<ol>
<li>按是否载明收款人姓名：记名本票、不记名本票</li>
<li>按有无到期时间：定期本票和即期本票</li>
<li>按支付方式：现金本票和转账本票</li>
<li>用途：远期付款、借贷凭证、筹集资金、提取款项</li>
</ol>
</li>
<li>支票：是出票人签发的，委托办理支票存款业务银行或其它金融机构在见票时无条件支付确定金额给收款人或者持票人的票据。<ol>
<li>特征：①是委付证券，但支票的付款人比较特殊，必须是有支付存款业务资格的银行或金融机构；②只有即期支票，支票无承兑制度</li>
<li>分为现金、转账和普通支票，普通支票可以支取现金和转账</li>
<li>特点：①使用方便，手续简便、灵活；②支票的提示付款期限自出票起10天；③支票可以背书转让，但用于支取现金的支票不可以</li>
</ol>
</li>
<li>银行卡：是指经批准由商业银行向社会发行的具有消费信用、转账结算、存取现金等全部或部分功能的信用支付工具。<ol>
<li>按额度：信用卡、借记卡</li>
<li>按载体：磁条卡、芯片卡</li>
<li>按发行主体：境内卡、境外卡</li>
<li>按对象：个人卡、单位卡</li>
<li>按币种：人民币卡、外币卡、多币种</li>
</ol>
</li>
<li>汇兑：是指汇款人委托银行将其款项支付给收款人的结算方式。汇兑便于汇款人向收款人主动付款。<ol>
<li>结算适用范围广，手续简便易行，灵活方便</li>
<li>分为电汇和信汇</li>
<li>特点：①没有金额起点的限制；②应用广泛，任何汇款人向异地主动付款的结算都可采取汇兑；③既可以单位间、个人间，也可以单位对异地个人；④手续简便易行</li>
</ol>
</li>
<li>托付承付：又称为异地托收承付，是根据购销合同由收款人发货后委托银行向异地付款人收取款项，由付款人向银行承认付款的结算方式。</li>
<li>委托收款：是收款人委托银行向付款人收取款项的结算方式。委托收款便于收款人主动收款，该结算方式适用范围十分广泛。无论是同城还是异地都可以使用。<ol>
<li>分为邮寄和电报划回</li>
<li>不受金额起点限制</li>
</ol>
</li>
</ol>
<h3 id="2-贷款业务"><a href="#2-贷款业务" class="headerlink" title="2.贷款业务"></a>2.贷款业务</h3><p>资产定义：是指商业银行通过对其资金加以运用，从而形成其各项资产业务。<br>资产内容：主要包括发放贷款、投资业务和其它资产业务。<br>资产分类：现金资产、长期投资、固定资产、无形资产以及其它资产。<br>贷款的意义：是银行以偿还和付息为条件，将资金提供给需求者的一种信用活动。贷款业务是银行的主要资产业务，也是银行会计核算的重要内容。</p>
<ul>
<li>按权责：自营贷款、委托贷款</li>
<li>按贷款期限：短期、中期、长期贷款</li>
<li>按贷款担保条件：信用、担保贷款、票据贴现</li>
<li>按贷款对象：工业、商业、农业、银团、外贸、小额抵押贷款</li>
<li>按资产质量：应计贷款和非应计贷款（比如30年的房贷，今年应还1万，还剩29万，则应计贷款是1万，属于应收）</li>
<li>按贷款风险：正常、关注、次级、可疑、损失五类，后三类合称不良贷款</li>
</ul>
<p>贷款常用名词：</p>
<ul>
<li>展期：因故不能到期归还贷款本金，而不得不延长贷款期限。（需要提前向银行申请，不是到期时）</li>
<li>利息：借款人依据借款合同支付给贷款人的资金成本。</li>
<li>罚息：因不能按时归还本金产生的利息。</li>
<li>复利：不能归还的利息而产生的利息。</li>
<li>利随本清：指借款人一次性的归还本金和利息。</li>
<li>抵押物：房产、汽车。</li>
<li>质押物：动产、定期存单。（手表、项链…）</li>
</ul>
<p>贷款流程：贷款申请 → 贷款评估 → 贷款调查 → 贷款审批 → 签订贷款合同 → 贷款发放 → 贷后检查 → 贷款归还</p>
<p>还款方式</p>
<ul>
<li>一次性还本付息：借款人到期时一次性换完</li>
<li>等额本息还款法：每次还款利息一致，每月还款一致（银行会建议这种，因为利息多）</li>
<li>等额本金还款法：每次还款本金一致，利息会越来越少，因为本金越来越少（钱多选这个）</li>
<li>分段等额本息还款：总共60万，前面还20，后面还60</li>
</ul>
<p>贷款利息计算方式：</p>
<ul>
<li>按季计息：每一季度末月20日结息，21日扣款入账</li>
<li>利随本清：归还贷款时一次性计息，贷款本金利息一次性扣款入账<br>  本金 * 天数 * 贷款日利率</li>
<li>贴现计息：发放时一次性计息扣款入账</li>
<li>罚息：罚息额 = 逾期额 * 天数 * 逾期日利率</li>
<li>复利：复息额 = 欠息 * 天数 * 贷款日利率</li>
</ul>
<p>贷款科目设置：</p>
<ul>
<li>“贷款”科目：资产类科目</li>
<li>“应收利息”科目：资产类科目</li>
<li>“贷款损失准备”科目：资产类科目</li>
<li>“利息收入”科目：损益类科目，实收负债</li>
</ul>
<p>贷款核算：</p>
<ol>
<li>发放（贷款转存，开立一般存款账户）<br> 借：贷款→资产性质的增加<br> 贷：现金→资产性质的减少</li>
<li>计息<br> 借：应收利息→资产性质的增加<br> 贷：利息收入→负债性质的增加</li>
<li>归还<br> 借：现金→资产性质的增加<br> 贷：贷款→资产性质的减少<br> 贷：应收利息→资产性质的减少</li>
<li>逾期<br> 借：贷款-信用逾期贷款→资产性质的增加<br> 贷：贷款-信用贷款→资产性质的减少</li>
</ol>
<h2 id="第八章、银行的会计核算"><a href="#第八章、银行的会计核算" class="headerlink" title="第八章、银行的会计核算"></a>第八章、银行的会计核算</h2><h3 id="1-银行的记账"><a href="#1-银行的记账" class="headerlink" title="1.银行的记账"></a>1.银行的记账</h3><p>银行的记账采用复式记账法，记账规则：</p>
<ol>
<li>以“借”、“贷”为记账符号；</li>
<li>凡资产增加、负债减少、利益减少、损失增加记为借；</li>
<li>凡资产减少、负债增加、利益增加、损失减少记为贷；</li>
<li>有借必有贷，借贷必相等；</li>
<li>记账方向：借在左，贷在右；</li>
<li>各科目借、贷发生额和余额，其合计各自相平衡。</li>
</ol>
<p>银行的财务种类分为对内账务和对外账务：</p>
<ul>
<li>对内账务：是银行根据自身业务就经营管理需要而设置的账务，例如：现金、固定资产、暂收款项、暂付款项等账务；</li>
<li>对外账务：是银行根据账务管理规定，为存款人或贷款人以及往来银行设立的独立账户，一般分为存款类、贷款类、往来类等账户。</li>
</ul>
<p>银行的财务组织：</p>
<ul>
<li>明细核算：<ul>
<li>分户账：是各科目的明细记录，必须按户立账，连续记载；</li>
<li>登记簿：金额户 数登记簿、开销户登记簿、挂失登记薄、现金登记簿、重要空白凭证登记簿、有价单证登记簿、托收登记簿、代保管有价值品登记簿。</li>
</ul>
</li>
<li>综合核算：<ul>
<li>科目日结单：是监督明细账务发生额，扯平当天账务的重要工具；</li>
<li>总账</li>
<li>日记表</li>
</ul>
</li>
</ul>
<h3 id="2-银行的损益"><a href="#2-银行的损益" class="headerlink" title="2.银行的损益"></a>2.银行的损益</h3><p>概念：是指一定经营时期内，以各项收入抵补各项支出之后的最终结果，如果收入大于支出是利润，小于是亏损。<br>银行的收入：</p>
<ol>
<li>营业收入：利息、金融企业往来、手续费、汇兑、其它营业收入</li>
<li>营业外收入：财产盘盈、固定资产清理、罚没、罚款收入</li>
<li>外汇经营收入</li>
<li>投资收入</li>
</ol>
<p>银行的支出：</p>
<ol>
<li>营业支出</li>
<li>营业外支出</li>
<li>外汇经营支出</li>
<li>税金支出</li>
</ol>
<h3 id="3-银行的利润"><a href="#3-银行的利润" class="headerlink" title="3.银行的利润"></a>3.银行的利润</h3><p>银行利润的概念：是银行在一定时期内全部经营活动的最终结果。<br>银行利润的核算：每一个会计年度终了，银行都要结转利润，将损益类账户余额全部结转到“本年利润”科目账务中，即将收益类账户余额结转到“本年利润”科目的贷方，而成本类账务余额结转到“本年利润”的借方，“本年利润”科目如为贷方余额，则为本期利润总额，为借方余额则为本期亏损总额。</p>
<h2 id="项目管理"><a href="#项目管理" class="headerlink" title="项目管理"></a>项目管理</h2><h3 id="项目实施方法论"><a href="#项目实施方法论" class="headerlink" title="项目实施方法论"></a>项目实施方法论</h3><p>什么是项目？<br>为了一个明确的目标，在特定的时间、预算、资源限定内，完成一系列独特的、复杂的并相互关联的活动。公司开发一个新产品、学校的毕业设计答辩、组织一次同学聚会。</p>
<p>什么是项目实施？<br>就是项目计划的执行和项目过程的控制。</p>
<p>什么是方法论？<br>就是人们用什么样的方式、方法来观察事务和处理问题。主要解决“怎么办”问题。</p>
<p>什么是项目实施方法论？<br>通俗的说，就是告诉大家如何开展项目实施工作的理论。再具体点，就是让大家从全局的角度认识项目实施。</p>
<p>学习项目实施方法论的好处？<br>①告别初进项目的迷茫：新员工刚到项目组，往往不知道该做什么，非常被动，如果学习了项目实施方法论，就知道项目需要做什么，从而更好的理解自己的工作职责，能够主动的接受并完成工作；<br>②表现的像职业老手：通过学习项目实施方法论，了解了在项目什么阶段该做什么事，使用合适的方法和技巧去完成任务，获得自我提升；</p>
<h3 id="项目实施管理"><a href="#项目实施管理" class="headerlink" title="项目实施管理"></a>项目实施管理</h3><p>项目进度计划是指在确保项目工期和主要里程碑时间的前提下，对项目实施过程合理安排，以达到合理利用资源、降低费用支出的目的。</p>
<p>项目组织架构：是指所有工作都围绕项目进行、通过项目创造价值并达成自身战略目标的组织架构</p>
<p>版本管理：是确保软件工作产品在其生命周期中的一致性，确保发布版本的规范度和准确性。使用版本管理仅可以对文件、目录、链接进行版本控制。同时还支持并行开发。</p>
<p>变更管理：为确保项目范围的完整性，需要有效地管理基线变更，并跟踪变更的实现。变更管理包括：需求变更、技术设计变更…</p>
<p>质量管理：活动包括严格的交付物评审、严格的测试策略以及质量保证（QA）活动。</p>
<h3 id="项目流程"><a href="#项目流程" class="headerlink" title="项目流程"></a>项目流程</h3><p>项目流程：项目启动 → 需求分析 → 系统设计 → 开发和单元测试 → 集成测试 → 系统测试 → 用户验收测试 → 上线<br>项目启动是指成功启动一个项目的过程，具体指开始计划针对项目的目标和最终结果的各种管理行为，包含编制和确认项目工作说明书、制订项目实施计划、召开项目启动会三步。<br>需求分析是指需求分析人员经过讨论和分析，准确理解项目的业务功能和性能等具体要求，并形成需求文档的过程，包含搭建部署系统操作环境和需求规格说明书编制。<br>系统设计是指在编写系统客户化的数据库设计、概要设计和详细设计，系统设计的相关产物需要通过甲乙双方组织的技术评审。<br>开发和单元测试是项目投入资源最多，开发工作量最大的阶段，产生项目交付的实质内容，包含代码开发、代码走查和单元测试。<br>集成测试是系统测试之前由项目组自行进行的内部测试，以确保交付给系统测试环节的软件版本的功能满足预期的质量要求，包含集成测试准备、集成测试执行和集成测试总结。<br>测试案例要有小标题，测什么的，第二是测试的目标，第三是测试步骤，第四是预测结果，第五是实际步骤，第六是实际结果，第七是是否测试通过。<br>上线及保障包括切换步骤与任务单下发、规章制度下发、生产环境准备等，按计划完成生产数据迁移及新系统投产上线。</p>
<h3 id="信息安全"><a href="#信息安全" class="headerlink" title="信息安全"></a>信息安全</h3><p>什么是信息安全？<br>信息本身的机密性、完整性和可用性的保持，即防止未经授权使用信息、防止对信息的非法修改和破坏、确保及时可靠地使用信息。</p>
<p>信息安全管理体系方针：<br>预防为主，控制信息安全风险；<br>强化监督，遵守有关规章制度；<br>以人为本，提高全员安全意识；<br>科学管理，实现效能持续改进。</p>
<h2 id="神州信息企业服务总线-SmartESB"><a href="#神州信息企业服务总线-SmartESB" class="headerlink" title="神州信息企业服务总线-SmartESB"></a>神州信息企业服务总线-SmartESB</h2><p>石锦鹏——技术总监<br>在ESB这块打败IBM、Oracle，涵盖银行、房地产、保险、能源、制造业等，市场占有率90%</p>
<p>微服务架构：其实和SOA架构类似，微服务是在SOA上做的升华，微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”，原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用，这些小应用之间通过服务完成交互和集成。</p>
<p>SOA：面向服务的架构，是一种设计方法，其中包含多个服务，服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在于操作系统进程中，各个服务之间通过网络调用。<br>ESB：企业服务总线，就像是一根管道，用来连接各个服务节点。为了集成不同系统，不同协议(协议+报文：<code>Tcp+txt</code>、<code>HTTP+json</code>、<code>MQ+xml</code>、<code>WS+soap</code>、<code>JMS+json</code>)的服务，ESB做了消息的转化解释和路由工作让不同的服务互联互通。<br>协议+报文<br>消息队列：IBM的MQ、Oracle的JMS、神码MOM</p>
<p>传统架构的<code>点对点</code>虽然快，但存在以下问题：</p>
<ul>
<li>交易路径复杂、业务和技术相混杂；</li>
<li>性能瓶颈、扩展能力差；</li>
<li>开发无需、没有标准、技术管理越来越困难；</li>
<li>拼拼凑凑，没有规划，线路复杂、维护成本激增，易出故障难以修复；</li>
<li>稳定性差，无法应对互联网大交易量冲击；</li>
<li>没有全局监控、管控与业务治理；</li>
</ul>
<p>Sm@rtESB的特点：</p>
<ul>
<li><strong>作用</strong>：协议适配、报文适配、智能路由、流量控制、监控告警、服务组合、冲正补偿、治理管控…</li>
<li>解耦：高内聚、低耦合、维护、扩展、替换、升级方便；</li>
<li>复用：灵活、快捷、高效的组装；</li>
<li>稳定：流量控制、故障隔离、异常处理等机制保障稳定性，能够应对互联网冲击；</li>
<li>标准：统一治理，服务标准化；</li>
<li>管控：统一管理，全局监控，维护方便成本低；</li>
</ul>
<p>ESB就像习大大的一带一路、翻译官、像一条高速公路连接各个村<br>in router out</p>
<h3 id="名称概念"><a href="#名称概念" class="headerlink" title="名称概念"></a>名称概念</h3><p>服务消费者：交易的发起方，也叫请求方，前端请求方系统；<br>服务提供方：交易所要调用的目标系统，也叫后端提供方系统；</p>
<p>业务服务：服务提供方系统发布到ESB上原子服务叫做业务服务；<br>服务系统：ESB上指服务提供方系统；<br>渠道：ESB上指服务消费方。</p>
<p>接入协议：ESB分配给消费方的访问地址，即消费方请求ESB的通讯地址；<br>接出协议：ESB访问提供方系统的访问地址，即提供方系统的实际地址；</p>
<p>适配流程：适配流程也叫数据适配，在ESB上是指对交易报文数据进行处理的流程；<br>渠道适配流程：ESB上在渠道上配置的适配流程叫做“渠道适配流程”；<br>服务适配流程：ESB上在服务上配置的适配流程叫做“服务适配流程”；<br>服务识别规则、系统识别规则，动态、静态识别。</p>
<p>五个服务：服务识别、系统识别、拆包、组包、服务路由；</p>
<p>穿透：ESB收到消费方请求报文后不做任何处理，直接路由给服务提供方的交易模式；<br>报文拆组包：消费方发送的报文和提供方能处理的报文类型不一致，需要由ESB完成报文转换的交易模式；<br>SDO：ESB内部标准数据格式；<br>报文拆包：ESB将收到的前端请求报文或后端响应报文拆成ESB内部标准数据格式SDO的过程；<br>报文组包：ESB将SDO组合成后端能够处理的请求报文或将SDO组合成前端能够处理的响应报文；</p>
<p>ESB流程：</p>
<ol>
<li>消费者调用ESB；</li>
<li>ESB的接入容器IN进行服务识别；</li>
<li>拆包；</li>
<li>服务路由ConsumerClientServer；</li>
<li>ESB的接出容器OUT进行系统识别；</li>
<li>组包；</li>
<li>业务服务；</li>
<li>服务提供者响应数据；</li>
<li>拆包；</li>
<li>进入router；</li>
<li>进入服务路由；</li>
<li>组包；</li>
<li>返回前端消费者；</li>
</ol>
<p>atm(渠道) → Pay(服务) → core(系统)：<br>metadata.xml<br>service_Pay.xml<br>chanel_atm_service_Pay.xml（请求拆包）<br>service_Pay_system_core.xml（响应组包）<br>chanel_core_service_Pay.xml（响应拆包）<br>service_Pay_system_atm.xml（请求组包）</p>
<h3 id="产品安装"><a href="#产品安装" class="headerlink" title="产品安装"></a>产品安装</h3><p>先启动MOM队列，因为需要完成console和ESB之间的通信，上面有两个队列分别监听console和ESB；在启动console之前需要先安装数据库，而console需要与数据库交互；最后启动ESB</p>
<h4 id="Linux下启动"><a href="#Linux下启动" class="headerlink" title="Linux下启动"></a>Linux下启动</h4><ol>
<li>查看文件信息<pre><code class="hljs shell">ls -lrt</code></pre></li>
<li>赋予执行权限<pre><code class="hljs shell">chmod 775 *bin</code></pre></li>
<li>查看剩余空间<pre><code class="hljs shell">free -g</code></pre>

</li>
</ol>
<h5 id="安装消息中间件MOM"><a href="#安装消息中间件MOM" class="headerlink" title="安装消息中间件MOM"></a>安装消息中间件MOM</h5><ol>
<li>安装消息中间件<pre><code class="hljs shell">./ SmartMOM.bin -i console</code></pre></li>
<li>启动消息中间件<pre><code class="hljs shell">./StartMessageServer.sh</code></pre></li>
<li>后台启动消息中间件<pre><code class="hljs shell">nohup ./StartMessageServer.sh &amp; tail -f nohup.out
nohup ./StartMessageServer.sh &gt; mom.log &amp; tail -f mom.out</code></pre></li>
<li>关闭消息中间件，需要携带端口和ip<pre><code class="hljs shell">./StopMessageServer.sh 127.0.0.1 7799</code></pre></li>
<li>查看java进程<pre><code class="hljs shell">ps -ef|grep java
ps -ef|grep Main</code></pre></li>
<li>配置日志级别<pre><code class="hljs text">1. 第一行等号后面第一个值是服务的日志级别error
2. 第二个值是console的话，会在控制台输出日志</code></pre>

</li>
</ol>
<h5 id="安装企业服务总线ESB"><a href="#安装企业服务总线ESB" class="headerlink" title="安装企业服务总线ESB"></a>安装企业服务总线ESB</h5><ol>
<li><p>安装ESB</p>
<pre><code class="hljs shell">./ SmartESB.bin -i console
安装过程需要确认jdk、安装路径、jdbcURL</code></pre></li>
<li><p>创建数据库用户</p>
</li>
<li><p>在安装目录下找到数据库文件并执行</p>
</li>
<li><p>启动服务</p>
<pre><code class="hljs text">1. 启动console：
./startConsole.sh
    报错，需要上传一个license文件到bin目录下，然后后台启动
nohup ./startConsole.sh &gt; console.out &amp; tail -f console.out

2. 启动esb(包括in、router、out)
nohup ./startSmart.sh &gt; all.log &amp; tail -f all.log</code></pre></li>
<li><p>后台启动消息中间件</p>
<pre><code class="hljs shell">nohup ./StartMessageServer.sh &amp; tail -f nohup.out
nohup ./StartMessageServer.sh &gt; mom.log &amp; tail -f mom.out</code></pre></li>
<li><p>关闭消息中间件，需要携带端口和ip</p>
<pre><code class="hljs shell">./StopMessageServer.sh 127.0.0.1 7799</code></pre>

</li>
</ol>
<h4 id="Windows下启动"><a href="#Windows下启动" class="headerlink" title="Windows下启动"></a>Windows下启动</h4><ol>
<li>修改MOM安装目录下启动、关闭bat文件的jdk路径；</li>
<li>修改SEB安装目录下：<br> 2.1 bin/setESBEnv.cmd的jdk路径；<br> 2.2 configs/console_conf/conf/dbconfig.xml和proxool.xml的数据库用户名<br> 2.3 middleware/tomcat/webapps/esbconsole/WEB-INF/classes/config-oracle.properties的数据库用户名<br> 2.4 DB_scripts/esbconsole.bat的数据库用户名</li>
<li>运行Oracle安装目录下的BIN/sqlplus.exe 不要关闭，打开就可以了</li>
<li>启动StartMessageServer.bat、DB_scripts/esbconsole.bat、console、smart</li>
</ol>
<p>natstat -an | findstr 4545</p>
<h3 id="1-课堂作业"><a href="#1-课堂作业" class="headerlink" title="1.课堂作业"></a>1.课堂作业</h3><ol>
<li><p>配置接入协议</p>
<pre><code class="hljs text">httpPosIn6001
http://127.0.0.1:6001/esb/pos</code></pre>
<p><img src="/resource/img/workplace/DCITS/esb/1.png" srcset="/img/loading.gif"><br>下方接入协议<br><img src="/resource/img/workplace/DCITS/esb/2.png" srcset="/img/loading.gif"></p>
</li>
<li><p>配置接出协议</p>
<ol>
<li>先设置http服务提供方响应报文，然后复制自动出现的地址<pre><code class="hljs text">http://127.0.0.1:80081/rsbconsole/httpServer</code></pre>
<img src="/resource/img/workplace/DCITS/esb/3.png" srcset="/img/loading.gif"></li>
<li>然后设置接出协议<br><img src="/resource/img/workplace/DCITS/esb/4.png" srcset="/img/loading.gif"></li>
<li>下发接出协议<br><img src="/resource/img/workplace/DCITS/esb/5.png" srcset="/img/loading.gif"></li>
</ol>
</li>
<li><p>配置渠道：pos<br><img src="/resource/img/workplace/DCITS/esb/6.png" srcset="/img/loading.gif"></p>
</li>
<li><p>配置服务：posSvc<br><img src="/resource/img/workplace/DCITS/esb/7.png" srcset="/img/loading.gif"></p>
</li>
<li><p>配置识别规则<br><img src="/resource/img/workplace/DCITS/esb/8.png" srcset="/img/loading.gif"></p>
</li>
<li><p>测试<br><img src="/resource/img/workplace/DCITS/esb/9.png" srcset="/img/loading.gif"></p>
</li>
</ol>
<h3 id="2-配置动态识别规则"><a href="#2-配置动态识别规则" class="headerlink" title="2.配置动态识别规则"></a>2.配置动态识别规则</h3><p><code>渠道绑定服务</code></p>
<ol>
<li>适配管理→识别规则管理<br><img src="/resource/img/workplace/DCITS/esb/10.png" srcset="/img/loading.gif"></li>
<li>测试<br><img src="/resource/img/workplace/DCITS/esb/11.png" srcset="/img/loading.gif"></li>
</ol>
<h3 id="3-新增系统识别"><a href="#3-新增系统识别" class="headerlink" title="3.新增系统识别"></a>3.新增系统识别</h3><p><code>服务绑定系统</code></p>
<ol>
<li>新增out识别规则<br><img src="/resource/img/workplace/DCITS/esb/12.png" srcset="/img/loading.gif"></li>
<li>修改系统识别<br><img src="/resource/img/workplace/DCITS/esb/13.png" srcset="/img/loading.gif"></li>
<li>测试<ol>
<li>测试001<br><img src="/resource/img/workplace/DCITS/esb/14.png" srcset="/img/loading.gif"></li>
<li>测试002<br><img src="/resource/img/workplace/DCITS/esb/15.png" srcset="/img/loading.gif"></li>
</ol>
</li>
</ol>
<h3 id="4-新增系统"><a href="#4-新增系统" class="headerlink" title="4.新增系统"></a>4.新增系统</h3><ol>
<li>添加core银行管理系统<br><img src="/resource/img/workplace/DCITS/esb/16.png" srcset="/img/loading.gif"></li>
<li>系统名<br><img src="/resource/img/workplace/DCITS/esb/17.png" srcset="/img/loading.gif"></li>
<li>绑定接出协议<br>一个系统只能绑定一个接出协议<br><img src="/resource/img/workplace/DCITS/esb/18.png" srcset="/img/loading.gif"></li>
<li>绑定服务<br>一个系统可以绑定多个服务，中间通过一条接出协议绑定<br><img src="/resource/img/workplace/DCITS/esb/19.png" srcset="/img/loading.gif"></li>
</ol>
<h3 id="5-从头开始"><a href="#5-从头开始" class="headerlink" title="5.从头开始"></a>5.从头开始</h3><pre><code class="hljs text">假定有一个渠道c1，接入协议为httpC1In6001，地址为http://127.0.0.1:6001/esb/c1
有两个服务s1和s2，s1指向在http8081的sys1，s2指向在tcp10013的sys2</code></pre>
<ol>
<li>协议管理<ol>
<li>新增接入协议<br><img src="/resource/img/workplace/DCITS/esb/20.png" srcset="/img/loading.gif"></li>
<li>设置响应报文，从中获取接出协议地址</li>
<li>新增http接出协议<br><img src="/resource/img/workplace/DCITS/esb/21.png" srcset="/img/loading.gif"></li>
<li>新增tcp接出协议，与http类似</li>
</ol>
</li>
<li>渠道管理<br><img src="/resource/img/workplace/DCITS/esb/22.png" srcset="/img/loading.gif"></li>
<li>服务管理<ol>
<li>新增服务s1<br><img src="/resource/img/workplace/DCITS/esb/23.png" srcset="/img/loading.gif"></li>
<li>新增服务s2：与s1类似，只是协议适配为tcp的out</li>
</ol>
</li>
<li>系统<ol>
<li>新增系统sys1<br><img src="/resource/img/workplace/DCITS/esb/24.png" srcset="/img/loading.gif"></li>
<li>新增系统sys2：与sys2类似，只是配置为s2的out</li>
</ol>
</li>
<li>识别规则<ol>
<li>新增in<br><img src="/resource/img/workplace/DCITS/esb/25.png" srcset="/img/loading.gif"></li>
<li>新增out<br><img src="/resource/img/workplace/DCITS/esb/26.png" srcset="/img/loading.gif"></li>
</ol>
</li>
<li>适配流程<ol>
<li>配置渠道的<br><img src="/resource/img/workplace/DCITS/esb/27.png" srcset="/img/loading.gif"></li>
<li>配置服务的：与配置渠道的类似</li>
</ol>
</li>
<li>测试</li>
</ol>
<h3 id="6-配置拆组包工程"><a href="#6-配置拆组包工程" class="headerlink" title="6.配置拆组包工程"></a>6.配置拆组包工程</h3><ol>
<li>在PC端修改渠道的适配流程<ol>
<li>修改IN的适配流程<br><img src="/resource/img/workplace/DCITS/esb/28.png" srcset="/img/loading.gif"></li>
<li>修改OUT的适配流程<br><img src="/resource/img/workplace/DCITS/esb/29.png" srcset="/img/loading.gif"></li>
</ol>
</li>
<li>在ESB运行目录下添加拆组包文件<pre><code class="hljs text">IN：/SmartESB/configs/in_conf/metadata
OUT：/SmartESB/configs/out_conf/metadata</code></pre>
公共的：<ul>
<li>metadata.xml元数据文件<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">?</span> <span class="hljs-attr">xml</span> <span class="hljs-attr">version</span>=<span class="hljs-string">&quot;1.0&quot;</span> <span class="hljs-attr">encoding</span>=<span class="hljs-string">&quot;UTF-8&quot;</span>?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">metadata</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">soldier</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;string&quot;</span> <span class="hljs-attr">length</span>=<span class="hljs-string">&quot;3&quot;</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">cardno</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;string&quot;</span> <span class="hljs-attr">length</span>=<span class="hljs-string">&quot;5&quot;</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">recode</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;string&quot;</span> <span class="hljs-attr">length</span>=<span class="hljs-string">&quot;6&quot;</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">metadata</span>&gt;</span></code></pre></li>
<li>service_s1.xml服务s1配置文件<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">?</span> <span class="hljs-attr">xml</span> <span class="hljs-attr">version</span>=<span class="hljs-string">&quot;1.0&quot;</span> <span class="hljs-attr">encoding</span>=<span class="hljs-string">&quot;UTF-8&quot;</span>?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">s1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">request</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">sdoroot</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">soldier</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;soldier&quot;</span> /&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">cardno</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;cardno&quot;</span> /&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">sdoroot</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">request</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">response</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">sdoroot</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">recode</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;recode&quot;</span> /&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">sdoroot</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">response</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">s1</span>&gt;</span></code></pre>
为IN容器添加:</li>
</ul>
<ol>
<li>channel_c1_service_s1.xml 将前端的请求报文拆包成SDO<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">?</span> <span class="hljs-attr">xml</span> <span class="hljs-attr">version</span>=<span class="hljs-string">&quot;1.0&quot;</span> <span class="hljs-attr">encoding</span>=<span class="hljs-string">&quot;UTF-8&quot;</span>?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">res</span> <span class="hljs-attr">package_type</span>=<span class="hljs-string">&quot;xml&quot;</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">soldier</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;soldier&quot;</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">cardno</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;cardno&quot;</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">root</span>&gt;</span></code></pre></li>
<li>service_s1_system_c1.xml 将SDO组包成前端可识别的响应报文<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">?</span> <span class="hljs-attr">xml</span> <span class="hljs-attr">version</span>=<span class="hljs-string">&quot;1.0&quot;</span> <span class="hljs-attr">encoding</span>=<span class="hljs-string">&quot;UTF-8&quot;</span>?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">res</span> <span class="hljs-attr">package_type</span>=<span class="hljs-string">&quot;xml&quot;</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">recode</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;recode&quot;</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">res</span>&gt;</span></code></pre>
为OUT容器添加：</li>
<li>service_s1_system_sys1.xml 将SDO组包成后端可识别的请求报文<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">?</span> <span class="hljs-attr">xml</span> <span class="hljs-attr">version</span>=<span class="hljs-string">&quot;1.0&quot;</span> <span class="hljs-attr">encoding</span>=<span class="hljs-string">&quot;UTF-8&quot;</span>?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">res</span> <span class="hljs-attr">package_type</span>=<span class="hljs-string">&quot;fix&quot;</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">soldier</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;soldier&quot;</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">cardno</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;cardno&quot;</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">res</span>&gt;</span></code></pre></li>
<li>channel_sys1_service_s1 将后端的响应报文拆包成SDO<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">?</span> <span class="hljs-attr">xml</span> <span class="hljs-attr">version</span>=<span class="hljs-string">&quot;1.0&quot;</span> <span class="hljs-attr">encoding</span>=<span class="hljs-string">&quot;UTF-8&quot;</span>?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">res</span> <span class="hljs-attr">package_type</span>=<span class="hljs-string">&quot;fix&quot;</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">recode</span> <span class="hljs-attr">metadataid</span>=<span class="hljs-string">&quot;recode&quot;</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">root</span>&gt;</span></code></pre></li>
</ol>
</li>
<li>测试<br><img src="/resource/img/workplace/DCITS/esb/30.png" srcset="/img/loading.gif"></li>
</ol>
<h3 id="7-配置流水日志"><a href="#7-配置流水日志" class="headerlink" title="7.配置流水日志"></a>7.配置流水日志</h3><ol>
<li>为esb的journal配置数据库并启动<br><img src="/resource/img/workplace/DCITS/esb/31.png" srcset="/img/loading.gif"><br>在esb安装目录的bin目录下面找到<code>startJournal</code>启动</li>
<li>适配流程管理<br><img src="/resource/img/workplace/DCITS/esb/32.png" srcset="/img/loading.gif"></li>
<li>测试<br><img src="/resource/img/workplace/DCITS/esb/33.png" srcset="/img/loading.gif"></li>
<li>还可以通过参数配置IN/OUT记录流水<br>这里配置了记录IN的第一个流水<br><img src="/resource/img/workplace/DCITS/esb/34.png" srcset="/img/loading.gif"></li>
</ol>
<h3 id="8-配置全报文流水日志"><a href="#8-配置全报文流水日志" class="headerlink" title="8.配置全报文流水日志"></a>8.配置全报文流水日志</h3><p>作用：</p>
<ol>
<li>为监控提供统计交易量；</li>
<li>为冲正交易提供原流水信息、报文信息。</li>
</ol>
<p><code>冲正</code>：一般在银行里，ESB自动冲正，将错账冲销，主要用于保证事务的一致性。</p>
<ol>
<li>流水策略配置<br><img src="/resource/img/workplace/DCITS/esb/35.png" srcset="/img/loading.gif"></li>
<li>流水信息查询<br><img src="/resource/img/workplace/DCITS/esb/36.png" srcset="/img/loading.gif"></li>
</ol>
<h3 id="9-流量控制"><a href="#9-流量控制" class="headerlink" title="9.流量控制"></a>9.流量控制</h3><p>业务监控、服务器监控</p>
<ol>
<li>启动主备流量控制<br><img src="/resource/img/workplace/DCITS/esb/37.png" srcset="/img/loading.gif"><br><code>两个同时启动</code></li>
<li>PC端节点管理<br><img src="/resource/img/workplace/DCITS/esb/38.png" srcset="/img/loading.gif"></li>
<li>流程令牌管理<br><img src="/resource/img/workplace/DCITS/esb/39.png" srcset="/img/loading.gif"></li>
<li>流程维度管理<br><img src="/resource/img/workplace/DCITS/esb/40.png" srcset="/img/loading.gif"></li>
<li>适配流程管理<br><img src="/resource/img/workplace/DCITS/esb/41.png" srcset="/img/loading.gif"></li>
<li>测试<br><img src="/resource/img/workplace/DCITS/esb/42.png" srcset="/img/loading.gif"></li>
</ol>
<h2 id="神州信息SOA3-0企业级微服务平台"><a href="#神州信息SOA3-0企业级微服务平台" class="headerlink" title="神州信息SOA3.0企业级微服务平台"></a>神州信息SOA3.0企业级微服务平台</h2><p>刘天<br>SOA3.0架构<br>单主机系统（处理能力有限） → 网状系统（易集成难扩展，点对点） → SOA架构服务化（可管理可治理） → 微服务1.0（分布式去中心、服务化模块化） → 微服务2.0（开放化、自动化云化支持）</p>
<p>微服务概念：是一个软件架构形式。在这个架构中，复杂的应用程序是由多个小而独立的进程组成，每一个进程通过独立于语言的接口进行相互交流。这些服务较小、高度解耦且专注于完成一个小任务，使得用模块化方法建设系统更加容易。</p>
<p>特点：</p>
<ul>
<li>每个服务都很简单，只关注于一个业务功能；</li>
<li>每个微服务可以由不同的团队独立开发；</li>
<li>微服务是松散耦合的；</li>
<li>微服务可以通过不同的编程语言与工具进行开发。</li>
</ul>
<p>为什么使用微服务？</p>
<ol>
<li>单体应用模块间代码互相影响，简单的代码修改需要整体打包，整体测试，效率低下；</li>
<li>无法做到单一模块的扩展，每次扩展都需要整体应用扩展，造成资源浪费；</li>
<li>单体应用决定了应用内部必须采用同样的技术栈进行开发，内部应用</li>
</ol>
<p>挑战：</p>
<ul>
<li>运行管理难度大：服务治理、服务拆分、自动化运维、分布式管理；</li>
<li>异构系统复杂：存量系统微服务化难度大、开发框架难以统一、第三方产品新技术更新快；</li>
<li>多云多中心环境复杂：两地三中心、分布式并行架构、混合云架构PAAS、CAAS；</li>
<li>开源框架复杂多变：Dubbo、SpringCloud框架缺陷修复困难，需求复杂维护成本高；</li>
<li>分布式事务：CAP定律问题（C：一致性、A：可用性、P：分区容错性）；</li>
</ul>
<p>目的：</p>
<ul>
<li>技术能力统一；</li>
<li>技术方案统一；</li>
<li>治理组件统一；</li>
<li>治理标准统一；</li>
</ul>
<p><code>支持报文类型</code>：XML、JSON、ISO8583、Fix、SWIFI、SOP、定长、分割符、各种自定义报文；<br><code>支持通讯协议</code>：TCP、HTTP/HTTPS、Socket、JMS、MQ、EJB、WebService、RMI、Tuxedo、Tong-Link、CICS、自定义通讯协议；</p>
<h3 id="注册中心优势"><a href="#注册中心优势" class="headerlink" title="注册中心优势"></a>注册中心优势</h3><table>
<thead>
<tr>
<th align="center">功能</th>
<th align="center">Consul</th>
<th align="center">zookeeper</th>
<th align="center">Eureka</th>
<th align="center">SmartEureka</th>
</tr>
</thead>
<tbody><tr>
<td align="center">服务注册/服务发现客户端</td>
<td align="center">提供客户端（应用外注册）</td>
<td align="center">-</td>
<td align="center">提供客户端（应用外注册）</td>
<td align="center">提供客户端（应用外注册）</td>
</tr>
<tr>
<td align="center">服务发现权限</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">提供服务发现权限管理，认证服务发现客户端，仅返回具备服务调用权限的服务列表</td>
</tr>
<tr>
<td align="center">服务健康检查</td>
<td align="center">服务状态、内存、硬盘等</td>
<td align="center">弱连接</td>
<td align="center">可配支持</td>
<td align="center">可配支持，可以根据结合SpringBoot的健康状态支配根据应用整体健康状况，决定服务健康与否</td>
</tr>
<tr>
<td align="center">多数据中心</td>
<td align="center">支持</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">支持</td>
</tr>
<tr>
<td align="center">一致性</td>
<td align="center">raft</td>
<td align="center">paxos</td>
<td align="center">-</td>
<td align="center">-</td>
</tr>
<tr>
<td align="center">CAP</td>
<td align="center">CP</td>
<td align="center">CP</td>
<td align="center">AP</td>
<td align="center">基于Eureka的AP基础强化C</td>
</tr>
<tr>
<td align="center">使用接口（多语言能力）</td>
<td align="center">rest api</td>
<td align="center">客户端</td>
<td align="center">rest api</td>
<td align="center">rest api</td>
</tr>
<tr>
<td align="center">watch支持</td>
<td align="center">全量/支持long poling</td>
<td align="center">支持</td>
<td align="center">支持long poling/大部分增量</td>
<td align="center">支持通知更新机制/支持long poling/支持增量更新</td>
</tr>
<tr>
<td align="center">自身监控</td>
<td align="center">metrics</td>
<td align="center">-</td>
<td align="center">metrics</td>
<td align="center">metrics</td>
</tr>
<tr>
<td align="center">安全认证</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">集成Spring Security</td>
<td align="center">集成Spring Security</td>
</tr>
<tr>
<td align="center">spring cloud集成</td>
<td align="center">已支持</td>
<td align="center">需开发</td>
<td align="center">已支持</td>
<td align="center">已支持</td>
</tr>
<tr>
<td align="center">易用性/可扩展性</td>
<td align="center">GO语言开发，更贴近SideCar模式</td>
<td align="center">不易用，作为注册中心功能不完善，大量功能需要定制化开发，容易踩坑</td>
<td align="center">java开发，提供易用的客户端/API</td>
<td align="center">java开发，提供易用的客户端/API</td>
</tr>
</tbody></table>
<p>微服务平台：</p>
<ul>
<li>管理平台；</li>
<li>注册中心：服务注册，分区选择，容灾多活，心跳探测，权限发现，数据同步；</li>
<li>配置中心：应用管理，环境管理，集群管理，配置发布，配置权限，操作审计；</li>
<li>日志中心：日志聚合、日志分析、日志查询；</li>
<li>认证中心：密码认证，JWT支持，证书管理，OAuth认证，签名认证，服务权限；</li>
<li>监控中心：监控指标、链路指标、监控告警、监控报表；</li>
<li>服务网关；</li>
<li>运行容器；</li>
<li>服务边车：服务发现、服务注册、服务路由、负载均衡、熔断降级、服务限流、安全认证、就绪检查、检查端点、配置端点、优雅停机、日志分离、模块化管理、幂等控制；</li>
<li>持续集成：流水线、自动构建、自动测试；</li>
</ul>
<h3 id="功能"><a href="#功能" class="headerlink" title="功能"></a>功能</h3><ul>
<li>统一管理平台主要功能：持续部署、网管管理、服务管理、配置管理；</li>
<li>注册中心主要功能：支付微服务的自动注册，以及微服务和网关对服务自动发现，支持服务列表权限过滤；</li>
<li>微服务网关主要功能：微服务网关试微服务架构体系中的重要组成单元；</li>
<li>微服务运行容器主要功能：微服务运行容器提供微服务调用过程中的路由及负载均衡、服务的认证、微服务的熔断降低限流、服务的隔离等功能。同时支持微服务运行过程中监控数据采集；</li>
<li>服务边车主要功能：边车容器提供服务发现、服务注册、服务路由、负载均衡、熔断降级、服务限流、安全认证、就绪检查、优雅停机、日志分离、幂等控制等功能。同时支持微服务运行过程中监控数据采集；</li>
<li>授权认证中心主要功能：保证用户或平台资源、合理的对外开放；</li>
<li>日志中心主要功能：采用ELK Stack技术，提供实时的分布式搜索和分析引擎，它可以使用全文搜索，结构化搜索及分析，处理问题排查；</li>
</ul>
<h3 id="组成"><a href="#组成" class="headerlink" title="组成"></a>组成</h3><ul>
<li>监控平台：资源监控、应用监控、调用链监控、监控报表、多中心监控、监控告警、监控面板、监控采集；</li>
<li>微服务统一管理平台：用户管理、注册中心、微服务管理，网关管理，告警管理；</li>
<li>微服务管理详细功能如下：接口管理、证书信息、负载信息、版本管理、实例信息、熔断信息、授权信息、流量控制；</li>
<li>网关管理详细功能如下：协议管理、服务路由、元数据管理、拆组包配置管理、服务识别配置、故障隔离管理、报文解析器管理、基础服务管理、流程适配管理；</li>
<li>微服务网关：服务授权、服务注册和发现、服务熔断/降级、协议适配、报文适配、报文穿透、服务路由、服务限流、故障隔离、超时控制、负载均衡(一般使用轮询)、网管版本发布、网管重启；</li>
<li>微服务运行容器：路由及负载、服务认证、服务限流、服务熔断降级；</li>
<li>服务边车：服务发现与路由、负载均衡、服务熔断、服务舱壁；</li>
<li>认证中心：认证中心支持服务认证；</li>
<li>注册中心：服务注册和发现、服务关系管理；</li>
<li>配置中心：配置实时同步、注解获取、占位符获取、XML获取、程序编码获取、客户端主动获取、服务端主动推送、版本管理、自定义发布、灰度发布、蓝绿部署、A/B测试、授权与审核、客户端支持、日志中心、高可用易扩展架构；</li>
</ul>
<h3 id="组件"><a href="#组件" class="headerlink" title="组件"></a>组件</h3><ol>
<li>Eureka：服务的注册和发现，将自己定义的API接口注册到Spring Cloud Eureka上，由服务注册中心、服务提供者和消费者构成；</li>
<li>Ribbon：客户端负载均衡器，Eureka只维护了服务生产者、注册中心和消费者间的关系，而这真正的服务消费者调用服务生产者提供的数据是通过Spring Cloud Ribbon来实现的，</li>
<li>Feign：可以简化我们的编码，是一个声明web服务客户端，Spring Cloud Feign 的出现使得Eureka和Ribbon的使用更为简单；</li>
<li>Hystrix：断路器，防止某一故障服务被持续访问，实现高可用的微服务架构；</li>
<li>Config：分布式配置中心，用于配置属性的存储，存储的位置可以为Git仓库、SVN仓库、本地文件等，由于服务数量巨多，为了方便服务配置文件统一管理，实时更新；</li>
<li>Zuul：服务网关，通过服务网关统一向外系统提供REST API的过程中，除了具备服务路由、均衡负载功能之外，它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色，为微服务架构提供了前门保护的作用，同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面，使得服务集群主体能够具备更高的可复用性和可测试性；</li>
<li>Bus：消息总线，在不关闭服务的情况下更新我们的配置，当然动态更新服务配置只是消息总线的一个用处，还有很多其他用处。</li>
</ol>
<p>只有eureka，zuul，feign，ribbon，hystrix是包含在Netflix组件里的。其他的组件如config，bus是单独开发的。</p>
<p>Consul、Gateway、Bus、Stream、Sleuth、zipkin和阿里巴巴新的的Nacos、Sentinel、Seata等技术</p>
<p>SLA：服务水平协议，判断服务的调用、注册情况</p>

            </div>
            <hr>
            <div>
              <div class="post-metas mb-3">
                
                
                  <div class="post-meta">
                    <i class="iconfont icon-tags"></i>
                    
                      <a class="hover-with-bg" href="/tags/%E8%81%8C%E5%9C%BA/">职场</a>
                    
                      <a class="hover-with-bg" href="/tags/%E7%A5%9E%E5%B7%9E%E4%BF%A1%E6%81%AF%E9%87%91%E8%9E%8DSBU%E5%B2%97%E5%89%8D%E5%9F%B9%E8%AE%AD/">神州信息金融SBU岗前培训</a>
                    
                  </div>
                
              </div>
              
                <p class="note note-warning">本博客所有文章除特别声明外，均采用 <a target="_blank" href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh" rel="nofollow noopener noopener">CC BY-SA 4.0 协议</a> ，转载请注明出处！</p>
              
              
                <div class="post-prevnext row">
                  <article class="post-prev col-6">
                    
                    
                      <a href="/2021/05/12/ci/travis-ci/IntoGithubPages/">
                        <i class="iconfont icon-arrowleft"></i>
                        <span class="hidden-mobile">Travis-ci+Hexo+GithubPages搭建个人博客</span>
                        <span class="visible-mobile">上一篇</span>
                      </a>
                    
                  </article>
                  <article class="post-next col-6">
                    
                    
                      <a href="/2020/11/27/java/Hibernate_MyBatis/">
                        <span class="hidden-mobile">Hibernate和MyBatis的区别</span>
                        <span class="visible-mobile">下一篇</span>
                        <i class="iconfont icon-arrowright"></i>
                      </a>
                    
                  </article>
                </div>
              
            </div>

            
          </article>
        </div>
      </div>
    </div>
    
      <div class="d-none d-lg-block col-lg-2 toc-container" id="toc-ctn">
        <div id="toc">
  <p class="toc-header"><i class="iconfont icon-list"></i>&nbsp;目录</p>
  <div id="tocbot"></div>
</div>

      </div>
    
  </div>
</div>

<!-- Custom -->


    
  </main>

  
    <a id="scroll-top-button" href="#" role="button">
      <i class="iconfont icon-arrowup" aria-hidden="true"></i>
    </a>
  

  
    <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v"
                 for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>
  

  

  <footer class="text-center mt-5 py-3">
  <div class="footer-content">
     <a href="https://soldiergit.github.io/" target="_blank" rel="nofollow noopener"><span>Copyright © 2020 soldier Powered by Hexo Fluid Core on Kubernetes</span></a> <i class="iconfont icon-love"></i> <a href="mailto:soldier_wyyx@163.com"><span>联系我</span></a> 
  </div>
  
  <div class="statistics">
    
    

    
      
        <!-- 不蒜子统计PV -->
        <span id="busuanzi_container_site_pv" style="display: none">
            总访问量 
            <span id="busuanzi_value_site_pv"></span>
             次
          </span>
      
      
        <!-- 不蒜子统计UV -->
        <span id="busuanzi_container_site_uv" style="display: none">
            总访客数 
            <span id="busuanzi_value_site_uv"></span>
             人
          </span>
      
    
  </div>


  

  
</footer>

<!-- SCRIPTS -->
<script  src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js" ></script>
<script  src="https://cdn.staticfile.org/twitter-bootstrap/4.4.1/js/bootstrap.min.js" ></script>
<script  src="/js/debouncer.js" ></script>
<script  src="/js/main.js" ></script>

<!-- Plugins -->


  
    <script  src="/js/lazyload.js" ></script>
  



  



  <script defer src="https://cdn.staticfile.org/clipboard.js/2.0.6/clipboard.min.js" ></script>
  <script  src="/js/clipboard-use.js" ></script>



  <script defer src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" ></script>





  <script  src="https://cdn.staticfile.org/tocbot/4.11.1/tocbot.min.js" ></script>
  <script>
    $(document).ready(function () {
      var boardCtn = $('#board-ctn');
      var boardTop = boardCtn.offset().top;

      tocbot.init({
        tocSelector: '#tocbot',
        contentSelector: '#post-body',
        headingSelector: 'h1,h2,h3,h4,h5,h6',
        linkClass: 'tocbot-link',
        activeLinkClass: 'tocbot-active-link',
        listClass: 'tocbot-list',
        isCollapsedClass: 'tocbot-is-collapsed',
        collapsibleClass: 'tocbot-is-collapsible',
        collapseDepth: 0,
        scrollSmooth: true,
        headingsOffset: -boardTop
      });
      if ($('.toc-list-item').length > 0) {
        $('#toc').css('visibility', 'visible');
      }
    });
  </script>



  <script  src="https://cdn.staticfile.org/typed.js/2.0.11/typed.min.js" ></script>
  <script>
    var typed = new Typed('#subtitle', {
      strings: [
        '  ',
        "西安神州数码融信软件有限公司&nbsp;",
      ],
      cursorChar: "_",
      typeSpeed: 70,
      loop: false,
    });
    typed.stop();
    $(document).ready(function () {
      $(".typed-cursor").addClass("h2");
      typed.start();
    });
  </script>



  <script  src="https://cdn.staticfile.org/anchor-js/4.2.2/anchor.min.js" ></script>
  <script>
    anchors.options = {
      placement: "right",
      visible: "hover",
      
    };
    var el = "h1,h2,h3,h4,h5,h6".split(",");
    var res = [];
    for (item of el) {
      res.push(".markdown-body > " + item)
    }
    anchors.add(res.join(", "))
  </script>



  <script  src="/js/local-search.js" ></script>
  <script>
    var path = "/local-search.xml";
    var inputArea = document.querySelector("#local-search-input");
    inputArea.onclick = function () {
      searchFunc(path, 'local-search-input', 'local-search-result');
      this.onclick = null
    }
  </script>



  <script  src="https://cdn.staticfile.org/fancybox/3.5.7/jquery.fancybox.min.js" ></script>
  <link  rel="stylesheet" href="https://cdn.staticfile.org/fancybox/3.5.7/jquery.fancybox.min.css" />

  <script>
    $('#post img:not(.no-zoom img, img[no-zoom]), img[zoom]').each(
      function () {
        var element = document.createElement('a');
        $(element).attr('data-fancybox', 'images');
        $(element).attr('href', $(this).attr('src'));
        $(this).wrap(element);
      }
    );
  </script>












  
    <!-- Baidu Analytics -->
    <script defer>
      var _hmt = _hmt || [];
      (function () {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?28d1b3a306f2b9f13ed66ffd0d5a0a9a";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
      })();
    </script>
  

  

  

  
    <!-- Tencent Analytics -->
    <script defer>
      var _mtac = {};
      (function () {
        var mta = document.createElement("script");
        mta.src = "//pingjs.qq.com/h5/stats.js?v2.0.4";
        mta.setAttribute("name", "MTAH5");
        mta.setAttribute("sid", "500732630");
        
        mta.setAttribute("cid", "500732632");
        
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(mta, s);
      })();
    </script>
  

  
    <!-- 51.la Analytics -->
    <script defer type="text/javascript" src="//js.users.51.la/20973747.js"></script>
  

  





</body>
</html>
